看着女神微博,总觉得女神微博的哪一张照片都好看,于是想用脚本把她微博相册中的微博配图全部抓下来。
一开始打开微博配图网页,打开开发者工具,查看网页源代码。其后,我直接右键查看网页源代码,发现网页源代码和开发者工具下看见的不一样,其中应该是浏览器加载了js,开发者工具看到了更多。因为爬虫的话,首选移动端,于是我打开移动端网页查看,这里面两者就是一样的。但是移动版照片好小,但是通过和网页版的比较,发现图片的地址有一定的关系,地址栏uuid一样,这就好办多了。
分析完,剩下的就是编码实现了,虽然学过Ruby,但是听说爬虫还是选择Python比较好,于是一边看语法,一边写代码。下面是源代码,其中技术实现分为主要三点:
1.登录。这里我直接用浏览器的Cookie登录,没有提交表单,省了不少代码,而且模拟表单登录,过一段时间可能不适用了,因为新浪会修改接口。其中把User-Agent参数带上,否则403。
2.爬取移动版图片uuid拼凑出网页版大图片地址,其中移动版小图片没有logo,大图片的logo没有找到好的去除方式。
3.下载图片到本地。
import urllib2 #2.7版本
import re
import requests
headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6',
'