真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Scrapy爬蟲容易忽視的點(diǎn)-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),昌吉企業(yè)網(wǎng)站建設(shè),昌吉品牌網(wǎng)站建設(shè),網(wǎng)站定制,昌吉網(wǎng)站建設(shè)報(bào)價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,昌吉網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

今天就跟大家聊聊有關(guān)Scrapy爬蟲容易忽視的點(diǎn),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

scrapy爬蟲注意事項(xiàng)

一、item數(shù)據(jù)只有最后一條

這種情況一般存在于對標(biāo)簽進(jìn)行遍歷時,將item對象放置在了for循環(huán)的外部。解決方式:將item放置在for循環(huán)里面。

Scrapy爬蟲容易忽視的點(diǎn)

二、item字段傳遞后錯誤,混亂

有時候會遇到這樣的情況,item傳遞幾次之后,發(fā)現(xiàn)不同頁面的數(shù)據(jù)被混亂的組合在了一起。這種情況一般存在于item的傳遞過程中,沒有使用深拷貝。解決方式:使用深拷貝來傳遞item。

Scrapy爬蟲容易忽視的點(diǎn)

三、對一個頁面要進(jìn)行兩種或多種不同的解析

這種情況一般出現(xiàn)在對同一頁面有不同的解析要求時,但默認(rèn)情況下只能得到第一個parse的結(jié)果。產(chǎn)生這個結(jié)果的原因是scrapy默認(rèn)對擁有相同的url,相同的body以及相同的請求方法視為一個請求。解決方式:設(shè)置參數(shù)dont_filter='True'。

Scrapy爬蟲容易忽視的點(diǎn)

四、xpath中contains的使用

這種情況一般出現(xiàn)在標(biāo)簽沒有特定屬性值但是文本中包含特定漢字的情況,當(dāng)然也可以用來包含特定的屬性值來使用(只不過有特定屬性值的時候我也不會用contains了)。

作者:村上春樹

書名:挪威的森林

以上面這兩個標(biāo)簽為例(自行F12查看),兩個span標(biāo)簽沒有特定的屬性值,但里面一個包含作者,一個包含書名,就可以考慮使用contains來進(jìn)行提取。

Scrapy爬蟲容易忽視的點(diǎn)

五、提取不在標(biāo)簽中的文本

有時候會遇到這樣的情況,文本在兩個標(biāo)簽之間,但不屬于這兩個標(biāo)簽的任何一個。此時可以考慮使用xpath的contains和following共同協(xié)助完成任務(wù)。

示例:

作者:

"村上春樹"

書名

"挪威的森林" 

Scrapy爬蟲容易忽視的點(diǎn)

六、使用css、xpath提取倒數(shù)第n個標(biāo)簽

對于很多頁面,標(biāo)簽的數(shù)量有時候無法保證是一致的。如果用正向的下標(biāo)進(jìn)行提取,很可能出現(xiàn)數(shù)組越界的情況。這種時候可以考慮反向提取,必要時加一些判斷。 

Scrapy爬蟲容易忽視的點(diǎn)

七、提取表格信息

其實(shí)對于信息抓取,很多時候我們需要對表格頁面進(jìn)行抓取。一般的方方正正的表格提取相對簡單,這里不討論。只說下含有合并單元格的情況。

以這個網(wǎng)頁的表格為例,定義5個字段批次,招生代碼,專業(yè),招生數(shù)量以及費(fèi)用,注意到合并單元格的標(biāo)簽里有個rowspan屬性,可以用來辨識出有幾行被合并。我的思路是有多少行數(shù)據(jù),就將batch批次擴(kuò)展到多少個,形成一個新的列表,然后進(jìn)行遍歷提取數(shù)據(jù)。

Scrapy爬蟲容易忽視的點(diǎn)

八、模擬登陸

當(dāng)頁面數(shù)據(jù)需要登陸進(jìn)行抓取時,就需要模擬登陸了。常見的方式有:使用登陸后的cookie來抓取數(shù)據(jù);發(fā)送表單數(shù)據(jù)進(jìn)行登陸;使用自動化測試工具登陸,比如selenium配合chrome、firefox等,不過聽說selenium不再更新,也可以使用chrome的無頭模式。鑒于自動化測試的抓取效率比較低,而且我確實(shí)很久沒使用過這個了。本次只討論使用cookie和發(fā)送表單兩種方式來模擬登陸。

使用cookie

使用cookie的方式比較簡單,基本思路就是登陸后用抓包工具或者類似chrome的F12調(diào)試界面查看cookie值,發(fā)送請求時帶上cookie值即可。

Scrapy爬蟲容易忽視的點(diǎn)

發(fā)送表單方式進(jìn)行登陸

cookie是有有效期的,對于大量數(shù)據(jù)的抓取,更好的方式是發(fā)送表單進(jìn)行模擬登陸。scrapy有專門的函數(shù)scrapy.FormRequest()用來處理表單提交。網(wǎng)上有些人說cookie沒法保持,可以考慮用我下面的方式。

Scrapy爬蟲容易忽視的點(diǎn)

看完上述內(nèi)容,你們對Scrapy爬蟲容易忽視的點(diǎn)有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝大家的支持。


名稱欄目:Scrapy爬蟲容易忽視的點(diǎn)-創(chuàng)新互聯(lián)
標(biāo)題URL:http://weahome.cn/article/dcppgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部