Python爬蟲系列(一)初期學習爬蟲的拾遺與總結


最近,為了提取裁判文書網的有關信息,自己邁入Python的學習之路,寫了快兩周的代碼,自己寫這篇文章總結下踩過的坑,還有遇到一些好的資料和博客等總結下,以便自己後期複習和參考和、分享給大家交流學習,也歡迎大家補充些精彩內容。

一、環境搭建和工具準備

1、為了省去時間投入學習,推薦直接安裝集成環境Anaconda

2、IDE:Pycharm、Pydev

3、工具:Jupyter Notebook(安裝完Anaconda會有的)

二、Python基礎視頻教程

1、瘋狂的Python:快速入門精講(Python2.x,可體驗到與Python3.x的差異)

2、零基礎入門學習Python(小甲魚的視頻課程)

看完這些課程,自己對Python有一個感覺和掌握,可以繼續看一些進階教程

3、Python3大全(pasword:bf3e)

三、Python爬蟲視頻教程

1、Python網路爬蟲實戰(完整的看下來,收穫不小)

2、Python3爬蟲三大案例實戰分享(非常好的課程,很多乾貨)

四、Python爬蟲的相關連接

1、python爬蟲的最佳實踐

2、Python網路爬蟲實戰項目代碼大全

3、零基礎製作一個Python 爬蟲

4、Python爬蟲入門

5、Python3(csdn博客)

7、抓取鬥魚tv的房間信息

五、正則表達式和BeautifulSoup、PhatomJS +Selenium的使用

1、Python爬蟲小白入門

2、輕鬆自動化---selenium-webdriver(python)

3、Python 正則表達式 re 模塊簡明筆記

4、【Python 筆記】selenium 簡介

5、Python爬蟲入門(7):正則表達式

(大家可以關注寫這些文章的作者,一般他們有Python文集,大家可以收藏下有參考價值的文章)

六、自己爬取新浪新聞相關信息的實戰

爬取頁面

我直接把源碼貼在這裡了,是參考Python網路爬蟲實戰課程做下來的

新聞評論數抽取函數

import re

import json

import requests

#js抓取新聞評論信息

commentURL="http://comment5.news.sina.com.cn/page/info?version=1&format=js&

channel=gn&newsid=comos-{}&

group=&compress=0&ie=utf-8&oe=utf-8&page=1&page_size=20&jsvar=loader_1491395188566_53913700"

def getCommentCounts(newsurl):

#獲取新聞id

m=re.search("doc-i(.+).shtml",newsurl)

newsid=m.group(1)

#根據新聞id獲取評論信息

comments=requests.get(commentURL.format(newsid))

#將信息解析為json格式

jd=json.loads(comments.text.strip("var loader_1491395188566_53913 700="))

return jd["result"]["count"]["total"]

新聞內文信息抽取函數

import requests

from datetime import datetime

from bs4 import BeautifulSoup

def getNewsDetail(newsurl):

result={}

res=requests.get(newsurl)

res.encoding="utf-8"

soup=BeautifulSoup(res.text,"html.parser")

result["title"]=soup.select("#artibodyTitle")

timesource=soup.select(".time-source")[0].contents[0].strip()

result["dt"]=datetime.strptime(timesource,"%Y年%m月%d日%H:%M")

result["source"]=soup.select(".time-source span a")[0].text

result["article"]=" ".join([p.text.strip() for p in soup.select("#artibody p")[:-1]])

result["editor"]=soup.select(".article-editor")[0].text.lstrip("責任編輯:")

return result

七、感想

這些天學習下來,Python爬蟲思路和套路很明確,主要是我們要對不同網站(反爬等)設計不同爬取路線和方法,但是還是要求自己總結方法和積累知識吧,還有一點自己也希望能把爬蟲運用到實際生活或者應用中(如果單純的抽取一個網頁信息其實沒多大意思),比如嘗試應用到批量下載一個網站的圖片或者文件等等,讓爬蟲為我們服務。


(ps:自己會持續更新和補充內容,也換大家留言補充)


推薦閱讀:

pandas 怎麼根據一列的數據的值的情況判斷來生成另外一列的數值?
如何用 python 解析三層結構 XML?
python與numpy使用的一些小tips[7]
【小林的OpenCV基礎課 16】直方圖/一定會再次啟程
用線性回歸預測灣區的房屋價格

TAG:學習 | Python | 總結 | 爬蟲 |