日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬取豆瓣小组_Python爬虫实战(4):豆瓣小组话题数据采集—动态网页

發布時間:2024/8/1 python 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬取豆瓣小组_Python爬虫实战(4):豆瓣小组话题数据采集—动态网页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1, 引言

注釋:上一篇《Python爬蟲實戰(3):安居客房產經紀人信息采集》,訪問的網頁是靜態網頁,有朋友模仿那個實戰來采集動態加載豆瓣小組的網頁,結果不成功。本篇是針對動態網頁的數據采集編程實戰。

Python開源網絡爬蟲項目啟動之初,我們就把網絡爬蟲分成兩類:即時爬蟲和收割式網絡爬蟲。為了適應各種應用場景,GooSeeker的整個網絡爬蟲產品線包含了四類產品,如下圖所示:

本實戰是上圖中的“獨立python爬蟲”的一個實例,以采集豆瓣小組討論話題(https://www.douban.com/group/haixiuzu/discussion?start=0?)信息為例,記錄整個采集流程,包括python和依賴庫的安裝,即便是python初學者,也可以跟著文章內容成功地完成運行。

2,Python和相關依賴庫的安裝

運行環境:Windows10

2.1,安裝Python3.5.2

2.2,Lxml 3.6.0

對應windows下python3.5的安裝文件為 lxml-3.6.0-cp35-cp35m-win32.whl

下載完成后,在windows下打開一個命令窗口,,切換到剛下載的whl文件的存放目錄,運行pip install lxml-3.6.0-cp35-cp35m-win32.whl

2.3,下載網頁內容提取器程序

網頁內容提取器程序是GooSeeker為開源Python即時網絡爬蟲項目發布的一個類,使用這個類,可以大大減少數據采集規則的調試時間,具體參看《Python即時網絡爬蟲項目: 內容提取器的定義》

2.4,安裝selenium

pip install selenium

2.5,PhantomJS下載

把下載得到的phantomjs-2.1.1-windows.zip解壓到本機的某個文件夾下

把解壓后的文件夾中的phantomjs.exe的完整路徑加文件名記錄下來,用來替換下面代碼的 browser = webdriver.PhantomJS(executable_path='C:\phantomjs-2.1.1-windows\bin\phantomjs.exe') 這一行中的兩個單引號之間的內容。

3,網絡爬蟲的源代碼

#_*_coding:utf8_*_#douban.py#爬取豆瓣小組討論話題

from urllib importrequestfrom lxml importetreefrom gooseeker importGsExtractorfrom selenium importwebdriverclassPhantomSpider:defgetContent(self, url):

browser= webdriver.PhantomJS(executable_path='C:\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe')

browser.get(url)

time.sleep(3)

html= browser.execute_script("return document.documentElement.outerHTML")

output=etree.HTML(html)returnoutputdefsaveContent(self, filepath, content):

file_obj= open(filepath, 'w', encoding='UTF-8')

file_obj.write(content)

file_obj.close()

doubanExtra=GsExtractor()#下面這句調用gooseeker的api來設置xslt抓取規則#第一個參數是app key,請到GooSeeker會員中心申請#第二個參數是規則名,是通過GooSeeker的圖形化工具: 謀數臺MS 來生成的

doubanExtra.setXsltFromAPI("ffd5273e213036d812ea298922e2627b" , "豆瓣小組討論話題")

url= "https://www.douban.com/group/haixiuzu/discussion?start="totalpages= 5doubanSpider=PhantomSpider()print("爬取開始")for pagenumber in range(1, totalpages):

currenturl= url + str((pagenumber-1)*25)print("正在爬取", currenturl)

content=doubanSpider.getContent(currenturl)

outputxml=doubanExtra.extract(content)

outputfile= "result" + str(pagenumber) +".xml"doubanSpider.saveContent(outputfile , str(outputxml))print("爬取結束")

運行過程如下:

將上面的代碼保存到douban.py中,和前面2.3步下載的提取器類gooseeker.py放在同一個文件夾中

打開Windows CMD窗口,切換當前目錄到存放douban.py的路徑(cd \xxxx\xxx)

運行 python douban.py

請注意:為了讓源代碼更整潔,也為了讓爬蟲程序更有通用性,抓取規則是通過api注入到內容提取器bbsExtra中的,這樣還有另外一個好處:如果目標網頁結構變化了,只需通過MS謀數臺重新編輯抓取規則,而本例的網絡爬蟲代碼不用修改。為內容提取器下載采集規則的方法參看《Python即時網絡爬蟲:API說明—下載內容提取器》。

4,爬蟲結果

在項目目錄下可以看到多個result**.xml文件,文件內容如下圖所示:

5,總結

因為信息采集規則是通過api下載下來的,所以,本案例的源代碼顯得十分簡潔。同時,整個程序框架變得很通用,因為最影響通用性的采集規則是從外部注入的。

6,集搜客GooSeeker開源代碼下載源

7,文檔修改歷史

2016-07-21:V1.0

總結

以上是生活随笔為你收集整理的python爬取豆瓣小组_Python爬虫实战(4):豆瓣小组话题数据采集—动态网页的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。