爬妹子图坑记录

有个网站

http://www.meizitu.com/

里面有很多妹子,所以就动了心思,是不是可以爬到我的本地来。

参考了 崔庆才的教程,改吧改吧之后,有了成功运行的程序。

中间遇到的坑如下

图片保存到本地

本来可以按照一般方法搞定的

u = urllib.urlopen(imageURL)
data = u.read()
f = open(fileName, 'wb')
f.write(data)
print u"正在悄悄保存她的一张图片为",fileName
f.close()

但是死活就是保存到本地变为24K的无效文件,经过用其他网站的网址单条命令调试和对比,发现是妹子图网站识别了你是机器人,所以,直接给你保存不了有效文件。

后加上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()

其中一张图片如果在服务器没有资源,那么程序不再往下爬取。

在以上加了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()

先记录着。

你可能感兴趣的:(爬妹子图坑记录)