查看完整版本: python爬蟲抓不到圖
頁: [1]

yaksa1105 發表於 2018-5-3 03:07 PM

python爬蟲抓不到圖

本帖最後由 yaksa1105 於 2018-5-4 03:33 PM 編輯

我是學python的新手,以爬蟲為主題找了一些網上的資料,
抓資料的都OK,抓圖的部份也有幾個成功了。

昨天遇到一個教學帖是抓百度貼吧的圖,跟著實做後出現問題了,
抓網頁原始碼OK,我用正則表達式處理資料,得到圖片位址OK,
下載圖片卻出現連線嘗試失敗的問題,有時候抓到一張有時候二張,
大部份是一張都抓不到,我猜是反爬蟲機制{:9:}
抓圖部份的程式碼如下:
res = requests.get(data, headers=headers)
with open('{0}.{1}'.format(name, 'jpg'), 'wb')as f:
    f.write(res.content)


我自己上網查反爬蟲資料後,改了headers的內容==>...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

ppny123 發表於 2018-5-9 06:21 PM

res = requests.get(url, params=data, headers=headers)
試下print res.status_code睇下成唔成功先, 另外data無提供到唔知會唔會錯data

yaksa1105 發表於 2018-5-10 09:59 AM

用requests.get會出錯,還是搞不懂那裡出問題,
用urllib.request.urlretrieve和request.urlopen就不會,
很正常的下完圖片了,網路上找的下載圖片方法,
requests.get這佪指令就是不行{:36:}

zxcv3316822 發表於 2019-2-2 11:09 PM

可否放一下截圖,我想應該不是反爬蟲喔,如果是的話應該還是會有資料被載下來,但是是錯誤的資料(大多都是空白圖片),with open('{0}.{1}'.format(name, 'jpg'), 'wb')as f:
    f.write(res.content)是不是這裡出錯了?

pentest.tw 發表於 2019-2-16 11:07 AM

Website Image Crawler的話已經有人寫過Python模組囉~
它是用urllib.request
Github - https://github.com/digitaldreams/image-crawler-python
可以直接Import它,或者參考看看它的寫法<br><br><br><br><br><div></div>

kevin61416 發表於 2019-2-21 11:46 AM

有測試過是否為 Client Rendering 的問題嗎?
頁: [1]