有個網(wǎng)站
里面有很多妹子,所以就動了心思,是不是可以爬到我的本地來。
參考了 崔慶才的教程,改吧改吧之后,有了成功運行的程序。
中間遇到的坑如下
圖片保存到本地
本來可以按照一般方法搞定的
u = urllib.urlopen(imageURL)
data = u.read()
f = open(fileName, 'wb')
f.write(data)
print u"正在悄悄保存她的一張圖片為",fileName
f.close()
但是死活就是保存到本地變?yōu)?4K的無效文件,經(jīng)過用其他網(wǎng)站的網(wǎng)址單條命令調(diào)試和對比,發(fā)現(xiàn)是妹子圖網(wǎng)站識別了你是機器人,所以,直接給你保存不了有效文件。
后加上HTTP的Header,搞定。
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'
headers = { 'User-Agent' : user_agent,'Cookie':'__jsluid=4e20473ab5ba881b9e653d82476753a2'}
request = urllib2.Request(imageURL,None,headers)
data = response.read()
f = open(fileName, 'wb')
f.write(data)
print u"正在悄悄保存她的一張圖片為",fileName
f.close()
其中一張圖片如果在服務(wù)器沒有資源,那么程序不再往下爬取。
在以上加了HTTP的Header的代碼中增加代碼后,完整如下:
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'
headers = { 'User-Agent' : user_agent,'Cookie':'__jsluid=4e20473ab5ba881b9e653d82476753a2'}
request = urllib2.Request(imageURL,None,headers)
try:
response = urllib2.urlopen(request)
except urllib2.HTTPError, e:
print(e.code)
return
except urllib2.URLError, e:
print(e.args)
return
data = response.read()
f = open(fileName, 'wb')
f.write(data)
print u"正在悄悄保存她的一張圖片為",fileName
f.close()
先記錄著。