iT邦幫忙

0

亞馬遜網站爬蟲請益

7iml 2020-01-09 16:37:093064 瀏覽

本身是一個後端的小工程師
頂多用c#寫幾隻小程式
但進到公司後老闆要求去爬亞馬遜的網站
一開始跟著網路上的教程走都很順利
但近半年來亞馬遜的反爬技術越來越強
已經不是網路上能找到辦法的程度了

先說一下目前的做法
從chrome的f12中找到需要的header
除了cookie和userAgent以外都先建立好
再來開始建立cookie
首先去各個不容易被擋的亞馬遜網頁收集cookie
分別為x-amz-captcha-1、x-amz-captcha-2、session-id、session-id-time
session-id-token、i18n-prefs、ubid-main(這個名稱在不同國家有點不同)、x-wl-uid
主要是這幾個,大概每15分鐘換一次

接著是準備很多userAgent和proxy ip
然後就開始爬了

最近遇到的問題是歐洲國家反爬得很嚴重
更換亞馬遜地址也檔的的很嚴重
一直出現503或是驗證碼

本身的知識已經不夠了
需要一位高手能提點我一下
怎麼能在亞馬遜同個ip能夠活得更久
header、cookie、useragent能幫我看看是不是做得不夠好
也希望能教我一點亞馬遜的逆向工程
我一直感覺是這塊有認證機制

抱歉上面寫得有點多
希望有高手能幫忙已經快2個禮拜沒有進度了

謝謝

看更多先前的討論...收起先前的討論...
sslinn iT邦新手 5 級 ‧ 2020-01-09 16:47:59 檢舉
爬蟲用python可能有更佳解?
ccutmis iT邦高手 4 級 ‧ 2020-01-09 16:56:53 檢舉
google搜 'python requests_html'
如果沒有python基礎的話可以搜 '鐵人賽 python 心原一馬'
7iml iT邦新手 5 級 ‧ 2020-01-09 17:09:00 檢舉
感謝留言
只不過要轉python之前我想先看看是否有需求
因為已經做了header、cookie、proxy等
不知道python還有哪邊更厲害的,能夠迴避掉亞馬遜的反爬機制
7iml iT邦新手 5 級 ‧ 2020-01-09 17:09:57 檢舉
鐵人賽我會再去研究,謝謝提供~
player iT邦大師 1 級 ‧ 2020-01-09 18:37:03 檢舉
請不要用C#去直接抓遠端網頁
改透過IE的Browser控制項(ActiveX)去抓
這樣你的問題應該會少很多
marlin12 iT邦研究生 5 級 ‧ 2020-01-09 20:55:25 檢舉
免費proxy很可能己經被亞馬遜列入黑名單,有試過用付費的proxy嗎?
twyes iT邦新手 4 級 ‧ 2020-01-10 09:55:50 檢舉
抱歉,我只能說一些跟技術無關的

你要爬的是全世界最大的電商
他們反爬一定做的很徹底
難度不低

如果沒有進度可以跟老闆說實際狀況
並說你做了那些努力

在有時間壓力下.很難做好事情
fillano iT邦超人 1 級 ‧ 2020-01-10 10:44:19 檢舉
類似@player說的,可以考慮使用headless browser,參考這個列表:
https://github.com/dhamaniasad/HeadlessBrowsers
7iml iT邦新手 5 級 ‧ 2020-01-10 11:42:34 檢舉
謝謝樓上幾位熱心人士留言

@player 謝謝留言,selenium之類的在server上面跑吃很多資源,所以想再擴充點知識,但這也是我最後的解法

@marlin12 都是用付費的proxy,謝謝留言

@twyes 謝謝關心,但目前我這部門的產出一向高品質,所以想達成目標,尤其如果說達不到,買資料的成本太高了

@fillano headless browser是一個好辦法,但是要在server上跑的話成本太高(太吃資源),不過這也是我最後的辦法,謝謝
7iml iT邦新手 5 級 ‧ 2020-02-17 10:07:42 檢舉
過了一個月來說說事情的結尾,之前遇到一個由js組成的一個ajax,但是使用chrome的F12來查看request卻無法成功模擬,之後是花時間去看js,發現組成requset的header沒有使用某個屬性,最後成功模擬request
7iml iT邦新手 5 級 ‧ 2020-02-17 10:12:06 檢舉
另外就是比較無解的search頁面,之後跟上面溝通後決定開啟更多的proxy來應對,因為amazon有js會去蒐集你的滑鼠操作,我是懷疑這部分才導致爬了好幾十頁就會開始擋ip,但要模擬這部分有點困難,所以用proxy看看能撐個幾個月吧,再不行就吃土了

尚未有邦友回答

立即登入回答