- 該APP必須登陸才能訪問所有頁面。 - 你的賬號(hào)如果沒有關(guān)注對(duì)方,對(duì)方的詳細(xì)介紹頁面的很多信息就被隱藏了。 - APP的用戶詳細(xì)頁面一個(gè)賬號(hào)大概只能訪問100次/天(有點(diǎn)記不清具體數(shù)字了)就不能訪問了。 俺注冊(cè)了10個(gè)該APP賬號(hào),模擬登錄后一天只能抓1000千多個(gè),還有好些數(shù)據(jù)不全(因?yàn)闆]有關(guān)注對(duì)方), 實(shí)在離俺想要的數(shù)據(jù)量相差較遠(yuǎn)。 總結(jié)上面的問題就是沒有足夠多的賬號(hào),就算賬號(hào)足夠多,每個(gè)賬號(hào)和每個(gè)ip也有抓取限制。 于是就把該產(chǎn)品的APP,微信,網(wǎng)頁里里外外都翻了一遍,能點(diǎn)的地方都去點(diǎn)一下看看。 有了新的發(fā)現(xiàn): - 該APP的用戶詳細(xì)頁分享到微信后,通過微信打開可以直接訪問,不需要登錄,也不需要微信授權(quán),用戶詳細(xì)頁信息都是全的(解決了需要關(guān)注才能查看全面信息問題)。 - 通過APP獲取分享到微信的url的接口訪問頻率控制放得很寬松。 - 雖然在微信上不用登錄訪問,沒有賬號(hào)限制了,但是還是有單個(gè)IP的訪問頻率控制。 分析完后,我就舒緩了很多,得出新的抓取思路,就是: 使用10個(gè)賬號(hào)按一定頻次通過APP不停的獲取每個(gè)用戶詳細(xì)頁分享到微信的URL,讓另外一個(gè)程序模仿微信的user-agent不停的訪問這些分享到微信的URL(要使用adsl撥號(hào)來解決單個(gè)IP訪問頻率控制問題)。 這樣通過app加微信的方式解決了對(duì)賬號(hào)的限制問題,實(shí)現(xiàn)了曲線救國(guó)。 后來我就發(fā)現(xiàn)好些抓取問題都有這種解決思路,跟我們?cè)诰W(wǎng)絡(luò)爬蟲小偏方之一里講的,有的網(wǎng)站為了SEO流量,而把referer來自百度的訪問控制放寬了一樣。 有的產(chǎn)品為了微信的流量(分享到微信里的頁面可以直接打開,點(diǎn)擊其他頁面時(shí)再提示要注冊(cè)登錄),而對(duì)來自微信點(diǎn)擊訪問控制放寬了。 友情提示:抓取這些社交信息,對(duì)關(guān)鍵信息最好脫敏,不要買賣這類數(shù)據(jù)。 |
|