之前準(zhǔn)備把大眾點評商戶和評價信息都抓取下來,遇到兩個問題就擱下來搀缠。
- 分類(菜系)硅确、地點都不限制目溉,不能搜到全部信息明肮,分頁也只有50頁數(shù)據(jù)(750條),而在首頁顯示的餐廳是15萬多家(上海地區(qū))缭付。
- 選定一個分類后柿估,如“本幫江浙菜”,發(fā)現(xiàn)顯示數(shù)據(jù)也是50頁陷猫。
基本可以斷定官份,不限制分類和地點,或者限定條件比較少烙丛,最多是顯示50頁數(shù)據(jù)舅巷。是不是考慮到?jīng)]有人會無聊地一頁一頁翻看。
解決的方式河咽,就是先按分類和地點進(jìn)行組合钠右,構(gòu)建出所有的url,爬取時再爬過所有分頁的頁面忘蟹。于是今早就開干飒房。
1. 先把分類和地點的基礎(chǔ)數(shù)據(jù)抓取下來
把上圖藍(lán)色框中的基礎(chǔ)數(shù)據(jù)先抓取下來,就是分類和地點媚值,地點包括狠毯,熱門商區(qū)、行政區(qū)褥芒。分類是都是以g開頭的加上數(shù)字嚼松,如川菜是g102,地點是以r開頭的加上數(shù)字锰扶,如浦東新區(qū)是r5献酗,人民廣場是r860
location=['r5', 'r2', 'r6', 'r1', 'r3', 'r4', 'r12', 'r10', 'r7', 'r9', 'r13', 'r8', 'r5937', 'r5938', 'r5939', 'r8846', 'r8847', 'c3580', 'r801', 'r802', 'r804', 'r865', 'r860', 'r803', 'r835', 'r812', 'r842', 'r846', 'r849', 'r806', 'r808', 'r811', 'r839', 'r854']
foodtype=['g101', 'g113', 'g132', 'g112', 'g117', 'g110', 'g116', 'g111', 'g103', 'g114', 'g508', 'g102', 'g115', 'g109', 'g106', 'g104', 'g248', 'g3243', 'g251', 'g26481', 'g203', 'g107', 'g105', 'g108', 'g215', 'g247', 'g1338', 'g1783', 'g118']
常見的菜系,本幫江浙菜g101坷牛、川菜g102罕偎、火鍋g110、東北菜g106京闰、海鮮g251颜及、日料g113,哪一種是你的最愛蹂楣。
2.組合出所有的URL俏站,包括分頁
在組合出所有的URL時,發(fā)現(xiàn)也可以把分頁加上捐迫,就是直接在url后跟上如p2乾翔,就是第二頁,如 “g102r5p2”,這個就表示點評上“浦東新區(qū) 川菜 餐廳 第2頁的 url”反浓,完整的URL是這樣的:
http://www.dianping.com/search/category/1/10/g102r5p2
當(dāng)然需要先獲取組合的每個URL的有多少頁萌丈。
3. 其他就是解析頁面數(shù)據(jù),寫入數(shù)據(jù)庫
我之前的文章都寫得比較詳細(xì)雷则。
頁面數(shù)據(jù)的提取辆雾,可以參考,《Scrapy 抓取數(shù)據(jù)提取對象小技巧》
寫入數(shù)據(jù)庫可以參考月劈,《Scrapy爬取數(shù)據(jù)存入MySQL數(shù)據(jù)庫》
今天代碼非常順利度迂,測試基本都是一次過。啟動爬蟲猜揪,數(shù)據(jù)順利抓到寫入數(shù)據(jù)庫惭墓,很快,我看了一下超過了5000條而姐。
我檢查一下數(shù)據(jù)腊凶,發(fā)現(xiàn)代碼中有個小錯誤,停下爬蟲修改好拴念,數(shù)據(jù)庫Truncate一下钧萍。
再次啟動爬蟲,發(fā)現(xiàn)居然被Ban了政鼠,我設(shè)置了瀏覽器請求頭(偽裝)风瘦,也設(shè)置了下載延遲(就是短了點,有點后悔)公般。這時的時間大概9:30万搔,是不是攻城獅上班了啊,今天是周六啊俐载。
2017-01-07 10:02:58 [scrapy] DEBUG: Crawled (403) <GET http://www.dianping.com/search/category/1/10/g3243r9> (referer: None)
2017-01-07 10:02:58 [scrapy] DEBUG: Ignoring response <403 http://www.dianping.com/search/category/1/10/g3243r9>: HTTP status code is not handled or not allowed
2017-01-07 10:02:58 [scrapy] INFO: Closing spider (finished)
想著上周也被Ban過蟹略,把圖也貼出來。爬取拉勾網(wǎng)招聘信息被Ban遏佣,換了一種入口請求,居然好了揽浙。
接下來状婶,再怎么啟動也不行。我只好找找設(shè)置IP代理的方法馅巷。一大早代碼寫得像在飛膛虫,現(xiàn)在...,干脆钓猬,先換個地方稍刀,換個IP試式看。
這次我把下載延時稍微設(shè)長一點,OK账月,現(xiàn)在下載了2萬多數(shù)據(jù)综膀。
吃貨們,等著我的數(shù)據(jù)分析吧局齿。
分析文章出來啦:獻(xiàn)給吃貨們的愛? -- 大眾點評美食數(shù)據(jù)分析