1. 程式人生 > >Python:10分鐘搞定不寫代碼的爬蟲

Python:10分鐘搞定不寫代碼的爬蟲

出現 ring swe 導入 gem 取數據 bbb del delay

代碼自己敲

使用 Chrome 瀏覽器插件 Web Scraper 可以輕松實現網頁數據的爬取,不寫代碼,鼠標操作,點哪爬哪,還不用考慮爬蟲中的登陸、驗證碼、異步加載等復雜問題。

技術分享
Web Scraper插件

Web Scraper 官網中的簡介:

Web Scraper Extension (Free!)
Using our extension you can create a plan (sitemap) how a web site should be traversed and what should be extracted. Using these sitemaps the Web Scraper will navigate the site accordingly and extract all data. Scraped data later can be exported as CSV.

先看一下,我用 web scaper 爬取到的數據:

1. 知乎輪子哥粉絲

輪子哥有 54 萬多粉絲,我只抓取了前 20 頁400條記錄

技術分享
設定數據字段 技術分享
Web Scraper 抓取流程及要點:

安裝Web Scraper插件後,三步完成爬取操作
1、Create new sitemap(創建爬取項目)
2、選取爬取網頁中的內容,點~點~點,操作
3、開啟爬取,下載CSV數據

其中最關鍵的是第二步,兩個要點:

  1. 先選中數據塊 Element,每塊數據我們在頁面上取,都是重復的,選中 Multiple
  2. 在數據塊中再取需要的數據字段(上圖Excel中的列)

爬取大量數據的要點,在於掌握分頁的控制。
分頁分為3種情況:

  1. URL 參數分頁(比較規整方式)
    URL 中帶有分頁的 page 參數的,如:

    https://www.zhihu.com/people/excited-vczh/followers?page=2

    直接在創建sitemap時,Start URL中就可以帶上分頁參數,寫成這樣:

    https://www.zhihu.com/people/excited-vczh/followers?page=[1-27388]
  2. 滾動加載,點擊“加載更多” 加載頁面數據

  3. 點擊分頁數字標簽(包括“下一頁”標簽)
    註意,這裏第2-3種可以歸為一類方式,是異步加載的方式,大部分都可以轉為第1種的方式來處理。
    這種方式分頁不太好控制。一般使用 Link 或 Element click 來實現分頁的操作。

圖示 Web Scraper 操作步驟:
技術分享
第一步:創建sitemap 技術分享
第二步:選取塊數據Element 技術分享
第三步:選取抓取的字段text 技術分享
第四步:爬取
Web Scaper 使用體會:

1) 除了規整的分頁方式外,其他分頁方式不好控制,不同的網站受頁面標簽不同,操作也不一樣。

2) 因為直接抓取頁面顯示值,抓取數據規整度不太好,需要 EXCEL 函數處理。
如,簡書七日熱門中文章發表時間,格式有好幾種。

3) 有一點網頁代碼基礎的上手很快,代碼才是王道啊。
特別是有點Python爬蟲基礎的,在選取頁面數據中很容易操作、理解,發現操作中出現的問題。

4) 比起八爪魚、火車頭等數據采集器,web scraper不需要下載軟件,免費,無需註冊,還很體會一點點代碼的操作。當然 web scraper 也有付費的雲爬蟲。

Web Scraper 還可以導入sitemap,把下面的這段代碼導入,你就可以抓取到知乎輪子哥前20頁的粉絲:

{"startUrl":"https://www.zhihu.com/people/excited-vczh/followers?page=[1-20]","selectors":[{"parentSelectors":["_root"],"type":"SelectorElement","multiple":true,"id":"items","selector":"div.List-item","delay":""},{"parentSelectors":["items"],"type":"SelectorText","multiple":false,"id":"name","selector":"div.UserItem-title a.UserLink-link","regex":"","delay":""},{"parentSelectors":["items"],"type":"SelectorText","multiple":false,"id":"desc","selector":"div.RichText","regex":"","delay":""},{"parentSelectors":["items"],"type":"SelectorText","multiple":false,"id":"answers","selector":"span.ContentItem-statusItem:nth-of-type(1)","regex":"","delay":""},{"parentSelectors":["items"],"type":"SelectorText","multiple":false,"id":"articles","selector":"span.ContentItem-statusItem:nth-of-type(2)","regex":"","delay":""},{"parentSelectors":["items"],"type":"SelectorText","multiple":false,"id":"fans","selector":"span.ContentItem-statusItem:nth-of-type(3)","regex":"","delay":""}],"_id":"zh_vczh"}

學習過程中遇到什麽問題或者想獲取學習資源的話,歡迎加入學習交流群
626062078,我們一起學Python!

Python:10分鐘搞定不寫代碼的爬蟲