Python爬蟲群作業(yè)-Week3-XPath

加入爬蟲群第三周,這周的作業(yè)是:
008 - 爬蟲處理流程及網(wǎng)頁解析
009 - 使用XPath解析網(wǎng)頁
010 - 使用BeautifulSoup和XPath抓取結(jié)構(gòu)化數(shù)據(jù)

基本上就是用XPath和BeautifulSoup爬取數(shù)據(jù)。向右老師肯定不是想我們照著做一遍就好,但他肯定沒想到有人連照著做一遍也有難度。


遇到的坑1是安裝幾個(gè)包,requests和lxml,這兩個(gè)包是爬蟲必須的,所以繞也繞不過去。簡而言之,有至少三種安裝方式

  1. 確定Python有裝pip,pip是管理包的工具,然后運(yùn)行:pip install requests。
    把我的錯(cuò)誤回溯,應(yīng)該是以下步驟:
    <blockquote>確認(rèn)安裝python同時(shí)也有安裝pip.exe。我的是在python/Scirpts目錄下,如果沒有安裝要重新卸載再安裝python;
    在計(jì)算機(jī)-高級(jí)設(shè)置處,變量環(huán)境的Path處加入D:/python/Scripts這個(gè)路徑,(具體路徑根據(jù)個(gè)人不同)
    在cmd處進(jìn)入到Scripts目錄下,然后運(yùn)行pip install requests

  2. 下載whl文件,然后安裝whl文件(這個(gè)只是百度到做法,但是沒有嘗試)

  3. pip和requests包折騰了周二周三兩個(gè)晚上,正好也特別累,就隨便看看書和視頻,然后到了lmxl包,也是線程的問題死活下不來,周四試完,周五沒再試,周六繼續(xù),還嘗試下lxml-3.7.2.tgz文件解壓,最后程工看不下去直接扔給了我一個(gè)lmxl.exe包,然后就突然解放了....
    以上就是我這周的功課....


為了不辜負(fù)大神的幫助,爬起來補(bǔ)作業(yè)...
向右老師這周刷了好幾篇帖子,然后我就糊涂了,先看了009,做了一半發(fā)現(xiàn)其實(shí)還有008,但反正008和010也沒看懂,就還是繼續(xù)按照009做下去了
主要就是XPath的爬取方法。向右老師用了糗事百科做例子:


裝好requests和lxml包以后,按照向右老師的代碼,很快就爬出來了。

其實(shí)我比較不明白的是@id替換成@class="article block untagged mb15"這個(gè)做法,就算是大神講了以后也還是不明白,只感覺是一種語法...
(大神說可以從w3school看Xpath語法,不過那里好像沒有講這個(gè))

1099477170.jpg

然后我就想實(shí)踐的運(yùn)用一下,爬煎蛋網(wǎng)的段子:(我平日里沒有這些愛好?。?br> 學(xué)到招數(shù)一:如果代碼很長又無法輸入文字搜索,在google chrome中打開開發(fā)者工具,點(diǎn)擊左上角的小箭頭,就能找到鼠標(biāo)指向的段落的代碼。

webwxgetmsgimg.jpg

然后,用右鍵copy as Xpath看到代碼,發(fā)現(xiàn)煎蛋網(wǎng)的段子代碼很怪:

//*[@id="comment-3443278"]/div[1]/div/div[2]/p

作為沒有其他辦法的小白,我當(dāng)然就簡單的加上@class="article block untagged mb15",當(dāng)然也很直接的失敗了。
然后經(jīng)過各種大神們的生拉硬拽,自己嘗試各種排列組合,后來發(fā)現(xiàn)以下方法可行(不一定是最正確的方法:)

import requests
from lxml import etree

html=requests.get('http://jandan.net/duan').text
selector = etree.HTML(html)

content = selector.xpath('//div[@class="row"]/div[2]/p/text()')

for each in content:
    print (each)

或者這樣寫也可以:

content = selector.xpath('//div[@class="row"]//p/text()')

但是只能爬一條,可能還是要加循環(huán)遍歷才行。


看回上圖,重點(diǎn)還是要理解網(wǎng)頁結(jié)構(gòu)。要一層一層的找,從最上的<div>定位。
前路漫漫啊,這周其實(shí)把SQL和beautifulsoup都略過了,下周再繼續(xù)補(bǔ)作業(yè)....
謝謝老師和各位大神指導(dǎo)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容