13行代碼實現爬取豆瓣250電影榜單

原理很簡單,經過發送resquest請求獲取服務器的response,再使用xpath提取其中咱們須要的數據,而後保存到文件中。服務器

先看看我爬取的結果:函數

首先,須要用到的模塊有兩個:spa

requestsorm

lxmlxml

  • 第一步,咱們先用Chrome的檢查分析豆瓣250頁面的http請求報頭(Request URL):

讓咱們把注意力放在箭頭所指的start = 0處,當start = 0時,意味着發送的是第一頁榜單的URL請求blog

豆瓣設定每頁榜單隻顯示25部電影,故共有10頁,每頁的Resquest URL也不同。    字符串

不過,每一頁的Resquest URL都有一個很明顯的規律,而這個規律幫了咱們大忙。requests

讓咱們再看一張圖:form

這是250榜單的最後一頁的URL請求,能夠看到start的值已經變爲了從第一頁的0增加到了225變量

豆瓣250榜單共有10頁,到此,規律已經很明顯了,即:

    每增加一頁,start的值就增長25。

  • 第二步,能夠開始發送請求了

    咱們在上一步獲得了規律,start 在每次請求中都 +=25

    因此咱們能夠寫一 個 for 循環,在循環內發送請求,並在其中定義一個變量 count ,使它在每次循環結束都 +=25,

    先用 str.format(count) 函數來把count 賦給URL字符串,再發送請求

  • 第三步,接收response,提取咱們須要的數據

    提取數據時,我用的是 etree.xpath() 函數,在形參輸入xpath語言提取須要的數據標籤便可,而後保存。

 

上代碼↓

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息