Python爬蟲基礎學習,從一個小案例來學習xpath匹配方法
學習目的是為了實踐,而實踐又可以加深我們的學習效率,今天給大家帶來了lxml庫的xpath匹配方法的例項!教程大家網上搜尋有很多,我們只看實用功能,當然,如果您已經很熟練了,可以跳過不看的!
開始前準備
版本:python3.6
工具:pycharm、lxml庫(pip安裝即可)
內容:新浪新聞搜尋關鍵字抓取相關資訊並儲存本地txt文件
思路
我們先開啟網頁url,看下它的頁面資料是怎麼載入的
搜尋世界盃,然後在開發者工具中先抓包看看是否為json資料,結果發現並沒有,那麼直接開啟原始碼看看呢
原始碼往下翻,到1200行左右看內容,眼熟不?所有的新聞都在原始碼中存在,那麼就簡單了!直接可以抓取相關內容
開始寫程式碼吧
先介紹一下xpath的語法,其實各種教程都有寫,我們只需要記住幾點
- 它解析網頁原始碼的語法為etree.HTML(html)#html為網頁原始碼的文字形式
- 它的匹配方式為data.xpath(‘//a[@class=*]/text()’)#data為上步解析後的原始碼或者指定原始碼
- 它匹配出來的結果為列表
- 儘量不要用開發者工具提供的複製xpath路徑功能,因為它對於後期維護或者修改你的程式碼很不友好
ok,不囉嗦了,直接上程式碼了
可以看到幾行程式碼直接獲取了所有新聞的標題,簡單說一下那幾行程式碼
1、url,有人可能已經注意到了,我在程式碼中用的url和網頁實際的有些不同,那是因為url中?後面的內容,如果&後面的引數沒有結果的話,是可以省略的,還有可以省略的就是類似時間戳等等,大家可以嘗試下!
2、html = requests.get(url)常規的獲取網頁原始碼,用的是requests庫,因為這個網站沒有反爬,所以很容易就取到了
3、data = etree.HTML(html.text)這裡就是上文所說,解析原始碼的語法,而且lxml解析原始碼還一個好處就是,如果原始碼中存在非閉合的標籤或者不是很規範的標籤,它會自動補全,非常實用!
4、重點來了:infos = data.xpath(‘//div[@class=”r-info r-info2”]/h2/a’)這行程式碼是獲取原始碼中帶有”r-info r-info2”值的class屬性,並且它在div標籤中,然後在標籤內容中查詢h2標籤及h2標籤下的a標籤,我們來看看網頁中的位置
這裡需要注意的是,儘量選擇用class屬性去定位是比較好的,因為它的屬性一般都是功能唯一的,比較方便!大家可以先複製屬性值然後去原始碼中搜尋,如果唯一或者所在的標籤全部是需要的內容,那麼就可以使用,如果不是,請往上級查詢!
5、因為剛才定位到的標籤是列表形式,所以用for迴圈來遍歷取出,這裡重點講解下string(.)的用法:
上面的標籤內容是非常方便的,標題就在a標籤下的文字中,但是依然存在一種情況,比如標題中含有我們是搜尋的關鍵字的時候,它就不是隻存在a標籤下了,比如下圖
短短一行,存在2個標籤,a和a標籤下的span標籤,那麼這種情況下,我們就需要使用string(.)來匹配了,它的主要功能是取出所屬標籤下所有文字內容!所以我們的語法就成了info.xpath(‘string(.)’,然後用print顯示就達到了效果!
好了,語法大概說到這,我們將所有的標題和url、簡介全部抓取下來,然後寫到txt文件,篇幅有限就抓5頁的內容吧!
ok,內容全部寫到檔案了,當然了,還可以繼續往下寫,比如進入每一個新聞頁面,抓取所有文字內容,也是一樣的寫法,大家有興趣的可以自行完善哦!
最後
推薦一個我個人的學習方法,那就是多看多聽多練!多看看大神的教程、部落格、經驗總結等等,多聽聽大神的思路分析,最重要的是多練,程式碼一定要多寫!程式碼一定要多寫!程式碼一定要多寫!這樣才能更快的學習進步!!大家加油
相關文章
- Python案例學習——模組和包、爬蟲的基礎概念Python爬蟲
- 基於 go + xpath 爬蟲小案例Go爬蟲
- Python爬蟲之Scrapy學習(基礎篇)Python爬蟲
- 從零基礎開始學習Python爬蟲你需要注意的點以及如何學習爬蟲Python爬蟲
- python爬蟲學習(一):BeautifulSoup庫基礎及一般元素提取方法Python爬蟲
- 爬蟲 – xpath 匹配爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- Datawhale-爬蟲-Task4(學習xpath)爬蟲
- Python零基礎爬蟲教學(實戰案例手把手Python爬蟲教學)Python爬蟲
- python爬蟲學習1Python爬蟲
- 學習爬蟲必須學的基礎知識爬蟲
- 一個Python爬蟲工程師學習養成記Python爬蟲工程師
- 零基礎如何學習好python爬蟲?分哪幾個階段?Python爬蟲
- 學習C語言還是學習Python爬蟲?C語言Python爬蟲
- python爬蟲是什麼?學習python爬蟲難嗎Python爬蟲
- 0基礎怎麼學習Python?Python學習方法彙總!Python
- 0基礎學習Python該如何入門?Python學習方法!Python
- Python爬蟲-xpathPython爬蟲
- Python爬蟲——XPathPython爬蟲
- 送給Python小白學習爬蟲的小專案Python爬蟲
- Python學習之路—Python基礎(一)Python
- python爬蟲—學習筆記-4Python爬蟲筆記
- python爬蟲—學習筆記-2Python爬蟲筆記
- python爬蟲js逆向學習(二)Python爬蟲JS
- Python爬蟲學習筆記(三)Python爬蟲筆記
- python爬蟲學習筆記(二)Python爬蟲筆記
- Python爬蟲基礎講解(七):xpath的語法Python爬蟲
- 爬蟲學習日記(一)爬蟲
- 《從零開始學習Python爬蟲:頂點小說全網爬取實戰》Python爬蟲
- 學習python做爬蟲主要學習哪些內容呢?Python爬蟲
- Python爬蟲 | 一條高效的學習路徑Python爬蟲
- 爬蟲學習日記(六)完成第一個爬蟲任務爬蟲
- python基礎學習Python
- 一入爬蟲深似海,總結python爬蟲學習筆記!爬蟲Python筆記
- 什麼是爬蟲?學習Python爬蟲難不難?爬蟲Python
- 為什麼學習python及爬蟲,Python爬蟲[入門篇]?Python爬蟲
- Python爬蟲系統化學習(3)Python爬蟲
- Python爬蟲系統化學習(4)Python爬蟲