如何利用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的核心思想是:
給你一個模板,稍微改一下代碼,就能夠爬出數據了。
四、注意事項
1.不適合有一定爬蟲基礎或者想專門從事爬蟲領域工作的同學來聽
2.不會講正則表達式,post,get,驗證碼破解,redis分散式,動態網頁數據爬取等知識
3.live想達到的最終效果是弄懂scrapy爬取流程,可以自己修改代碼爬數據
4.一定要自己動手做
最後說一下,歡迎來聽live!
1月13日晚上八點開始,
希望聽後能給你帶來不一樣的想法
如何利用python爬取靜態網頁數據?
如何利用python爬取靜態網頁數據?
如何利用python爬取靜態網頁數據?
以上
推薦閱讀:
※Scrapy中xpath如何提取細節標籤
※第十一章 Scrapy入門程序點評
※你懂Scrapy嗎?Scrapy大型爬蟲框架講解【一】
※【記錄】Scrapy模擬登錄cookie失效問題
※如何用scrapy爬取搜房網上小區的坐標值?