如何利用python爬取靜態網頁數據?

這是一則廣告貼,屁顛屁顛來宣傳我的知乎live——>

如何利用python爬取靜態網頁數據?

這篇文章是對這次live的詳細介紹,也幫助你去根據自身需求看需不需要來聽這場live

---------文章結構-----------------

1.舉辦live的初衷

2.你需要事先安裝的軟體

3.爬數據六步打仗法

4.注意事項

------------------------

舉辦live的初衷

先說說我在python的scrapy學習方面的心路歷程吧。

最開始接觸到爬蟲,哇塞,能夠將網頁中幾千條幾萬條數據全部爬下來,感覺好牛逼啊,想想數據分析數據分析,第一步你總得有數據才行吧,於是展開了爬數據之旅。【現在想想,那個時候真的太天真=。。=|||||】

我第一次看的是網易雲課堂中丘老師的《網路爬蟲實戰》,很詳細,從原理講起,一步一步,get,post,beautifulsoup4啥的都是那個時候學的,大概花了一周時間才跟著網課爬出數據,可那個時候不會舉一反三,換個網站就不會爬了【基礎不紮實。。】

陰差陽錯,在youtube上看到丘老師關於scrapy的教程,於是從零接觸了scrapy發現scrapy比起一步步打代碼真的方便很多,學完後堅決走scrapy爬數據路,可是問題是丘老師用的解析數據組件是beautifulsoup4的,而大部分scrapy解析組件是xpath,在爬數據問題遇到了在網上找解決方案花了很長時間。於是翻遍了youtube上用scrapy爬數據的視頻,國內一些培訓機構的scrapy視頻,找了印度阿三的scrapy教程看,找了analytics vidhya網站上的scrapy文章看,找了私服專欄的文章看,向有經驗的人請教了些技術問題,補了些python基本語法,大概理解代碼含義,這才慢慢的對scrapy有了一些自己的見解。

想想看目前自己之所以能夠爬數據,原因有如下:

  • 一些網課的啟蒙【看懂大致流程】
  • 自身不斷實踐【換個網站類比爬取,多看同類文章代碼】
  • 向有經驗的人請教【在網上實在找不到答案,可以直接向技術大牛詢問,幫你找找錯】

可能有人說,自己沒有認識的做爬蟲的朋友,其實嘛,這個問題很簡單,之前有私信別人但沒人鳥我= =,想快速詢問的話,知乎里有個東西叫【值乎】,總結好你的問題截個圖走值乎通道,詢問時有禮貌一些,一般不會被拒絕。(除非你的問題太難。。。)

看吧,零基礎爬數據,真的不是看了一兩個小時的網課就會的。

但這些網課文章請教給了我很多啟發,所以在實踐中慢慢摸清了一些套路。現在基本上就是用一個模板,然後改一下代碼,數據就爬出來了。這個模板如下:

from scrapy import Requestnfrom scrapy.spiders import Spidernfrom wangzuxian.items import WangzuxianItemnnclass Wangzuxian1Spider(Spider):n name = wangzuxian1n start_urls = [https://movie.douban.com/celebrity/1166896/movies?sortby=time/]nn def parse(self, response):n item = WangzuxianItem()n dakuangjia = response.xpath(//div[@class="grid_view"]/ul/li)n for xiaokuangjia in dakuangjia:n item[title] = xiaokuangjia.xpath(.//dl/dd/h6/a//text()).extract_first()n item["director"] = xiaokuangjia.xpath(.//dl/dd/dl//text()).extract()[3]n item["year"] = xiaokuangjia.xpath(.//dl/dd/h6/span[1]//text()).extract_first()n item["grade"] = xiaokuangjia.xpath(.//div[@class="star clearfix"]/span[2]//text()).extract_first()n item["partner"] = xiaokuangjia.xpath(.//dl/dd/dl//text()).extract()[7]n item["access"] = xiaokuangjia.xpath(.//div[@class="star clearfix"]/span[3]//text()).extract_first()n yield itemnn next_url = response.xpath(//a[text()="後頁>"]/@href).extract_first()n absolute_next_page_url = response.urljoin(next_url)n yield Request(absolute_next_page_url)n

而這次live目的也在此,教你看懂上面這個模板並知道如何修改,舉一反三爬數據。

2.你需要安裝的軟體

你可以提前安裝好軟體,畢竟爬數據講究的是實操。

安裝的軟體有 anaconda,pycharm,sublime3

瀏覽器:谷歌瀏覽器

谷歌瀏覽器插件 xpath helper

只要這五個軟體,就能爬數據,安裝scrapy框架直接pip install scrapy

3,爬數據六步打仗法

這也是整場live想要交給大家的東西,結合之前爬數據的經驗,總結了這六步法。通過這六大法你可以爬取大部分靜態網頁。

live中的一頁ppt

整場live的核心思想是:

給你一個模板,稍微改一下代碼,就能夠爬出數據了。

四、注意事項

1.不適合有一定爬蟲基礎或者想專門從事爬蟲領域工作的同學來聽

2.不會講正則表達式,post,get,驗證碼破解,redis分散式,動態網頁數據爬取等知識

3.live想達到的最終效果是弄懂scrapy爬取流程可以自己修改代碼爬數據

4.一定要自己動手做

最後說一下,歡迎來聽live!

1月13日晚上八點開始,

希望聽後能給你帶來不一樣的想法

如何利用python爬取靜態網頁數據?

如何利用python爬取靜態網頁數據?

如何利用python爬取靜態網頁數據?

以上


推薦閱讀:

Scrapy中xpath如何提取細節標籤
第十一章 Scrapy入門程序點評
你懂Scrapy嗎?Scrapy大型爬蟲框架講解【一】
【記錄】Scrapy模擬登錄cookie失效問題
如何用scrapy爬取搜房網上小區的坐標值?

TAG:数据分析 | scrapy |