摘要:和前面幾節課類似的分析這節課就不做了,對于分頁,請求什么的,大家可以直接參考前面的四節課,這一刻主要特別的是,我們在采集商品的同時,會將京東的商品評價采集下來。
系列教程:
手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏
手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲
手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取
手把手教你寫電商爬蟲-第四課 淘寶網商品爬蟲自動JS渲染
四節課過去了,咱們在爬蟲界也都算見過世面的人,現在再來一些什么ajax加載之類的小魚小蝦應該不在話下了,即使是淘寶這種大量的ajax,我們祭上我們的核武器,也輕松應對了,這一課主要是來看看除了技術上的頁面處理外,我們還會遇上更棘手的問題,就是反爬蟲,當然現在有各種各樣的反爬蟲,今天就先介紹最簡單的一種:限制IP。
今天咱們的對手依然是業界大佬,馬云最忌憚的男人,宅男心中愛恨交錯的對象 - JD.COM
也不用我安利,特別是程序員,有幾個沒給京東送過錢的。廢話不多說,先上工具:
1、神箭手云爬蟲,2、Chrome瀏覽器 3、Chrome的插件XpathHelper 不知道是干嘛的同學請移步第一課
打開網站瞅一眼:
好了,相信我,截這張圖絕對不是在虐你們這些單身狗。我們就是科學的研究一下這個頁面,沒啥特別的:大廠風,硬仗準備。
先來挑一個分類吧,這次挑一個大家都熟悉的互聯網書類:
http://search.jd.com/Search?keyword=Python&enc=utf-8&book=y&wq=Python&pvid=33xo9lni.p4a1qb
你們的最愛,python從入門到放棄的全部資料。
和前面幾節課類似的分析這節課就不做了,對于分頁,ajax請求什么的,大家可以直接參考前面的四節課,這一刻主要特別的是,我們在采集商品的同時,會將京東的商品評價采集下來。同時呢,我們也探討下該如何應對京東對IP的限制,OK,先直接上代碼:
var configs = { domains: ["search.jd.com","item.jd.com","club.jd.com"], scanUrls: ["http://search.jd.com/Search?keyword=Python&enc=utf-8&qrst=1&rt=1&stop=1&book=y&vt=2&page=1&s=1&click=0"], contentUrlRegexes: ["http://item.jd.com/d+.html"], helperUrlRegexes: ["http://search.jd.com/Search?keyword=Python&enc=utf-8&qrst=1&rt=1&stop=1&book=y&vt=2&page=d+&s=1&click=0"],//可留空 fields: [ { // 第一個抽取項 name: "title", selector: "http://div[@id="name"]/h1",//默認使用XPath required: true //是否不能為空 }, { // 第一個抽取項 name: "productid", selector: "http://div[contains(@class,"fl")]/span[2]",//默認使用XPath required: true //是否不能為空 }, { name: "comments", sourceType: SourceType.AttachedUrl, attachedUrl: "http://club.jd.com/productpage/p-{productid}-s-0-t-3-p-0.html", selectorType: SelectorType.JsonPath, selector: "$.comments", repeated: true, children:[ { name: "com_content", selectorType: SelectorType.JsonPath, selector: "$.content" }, { name: "com_nickname", selectorType: SelectorType.JsonPath, selector: "$.nickname" }, ] } ] }; configs.onProcessHelperUrl = function(url, content, site){ if(!content.indexOf("抱歉,沒有找到")){ var currentPage = parseInt(url.substring(url.indexOf("&page=") + 6)); if(currentPage == 0){ currentPage = 1; } var page = currentPage + 2; var nextUrl = url.replace("&page=" + currentPage, "&page=" + page); site.addUrl(nextUrl); } return true; }; var crawler = new Crawler(configs); crawler.start();
這里主要給大家講一下這個評論的配置,由于評論是多項,且評論還有子項,在框架中,是通過children關鍵字來配置的。具體參照代碼既可,我們可以在子項中在定義不同的字段,像這里的comments抽取項會有content和nickname兩個子抽取項,分別對應的是評論的內容和昵稱。
這里是一個簡化的版本,由于京東頁面相對很復雜,我們在抽取評論的時候,只抽取前一部分評論,當然我們還可以拿到更多的信息,包括評論數,評論人的等級等等,這里大家就自行探索吧。
最后,由于京東會對IP進行封鎖,雖然說神箭手會自動分布式開啟爬蟲,不過依然扛不住京東大叔的封鎖,因此這里需要通過接入代理IP解決這樣的問題,類似開啟js渲染,爬取速度會大大下降,需要大家耐心等待結果嘍,代碼如下:
configs.enableProxy = true;
大功告成,開啟爬蟲,喝杯咖啡,京東商品的評論就可以看到啦:
評論因為是數字,因此會存儲的時候,會直接存儲成json格式:
對爬蟲感興趣的童鞋可以加qq群討論:342953471。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37939.html
摘要:和前面幾節課類似的分析這節課就不做了,對于分頁,請求什么的,大家可以直接參考前面的四節課,這一刻主要特別的是,我們在采集商品的同時,會將京東的商品評價采集下來。 系列教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取 手把手教你寫電商爬蟲-第四課 淘寶網商品爬...
摘要:之前寫了一個電商爬蟲系列的文章,簡單的給大家展示了一下爬蟲從入門到進階的路徑,但是作為一個永遠走在時代前沿的科技工作者,我們從來都不能停止。金融數據實在是價值大,維度多,來源廣。由于也是一種,因此通常來說,在中抽取某個元素是通過來做的。 相關教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰...
摘要:之前寫了一個電商爬蟲系列的文章,簡單的給大家展示了一下爬蟲從入門到進階的路徑,但是作為一個永遠走在時代前沿的科技工作者,我們從來都不能停止。金融數據實在是價值大,維度多,來源廣。由于也是一種,因此通常來說,在中抽取某個元素是通過來做的。 相關教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰...
摘要:老規矩,爬之前首先感謝淘寶公布出這么多有價值的數據,才讓我們這些爬蟲們有東西可以搜集啊,不過淘寶就不用我來安利了廣大剁手黨相信睡覺的時候都能把網址打出來吧。 系列教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取 都已經三節課了,大家活動活動手腳,咱們開始一場...
閱讀 3565·2021-09-24 09:48
閱讀 1087·2021-09-10 10:51
閱讀 3268·2019-08-30 13:03
閱讀 3315·2019-08-30 12:51
閱讀 1388·2019-08-30 11:22
閱讀 1052·2019-08-29 18:38
閱讀 2035·2019-08-29 16:41
閱讀 3183·2019-08-29 15:32