本文已经过时了,请查看最新小白爬虫第一弹之抓取妹子图 | 静觅
Code Change World!
本修改为在原基础上的一次学习与优化,毕竟刚开始学习,故代码中注释有所保留,方便以后回顾与学习语法。
请先了解原来能实现的目标,在此不再赘述,原文地址Python爬虫实战四之抓取淘宝MM照片,感谢作者的代码与思路。
本修改详情
- 代码改写为python3.5运行,因为3.5版本语法与模块有所变更
- 增加cookie验证解决跳转
- 无法保存图片能够容错而不是停止运行
- 其他细节修改
流程修改为:
加上cookie与伪装浏览器后先保存所有详情页,因为cookie有过期时间,而保存所有图片太耗时,故先保存详情页面下来,再提取网址获取图片。也可以将提取出来的地址保存为文件再导入获取图片,另一个思路而已,皆可行。
代码部分:
spider.py
#!/usr/bin/python
# -*- coding:utf-8 -*-
import urllib.request
import re
import tool
import os
import http.cookiejar
#抓取MM
class Spider:
#页面初始化
def __init__(self):
self.siteURL = 'https://mm.taobao.com/json/request_top_list.htm'
self.tool = tool.Tool()
#获取索引页面的内容
def getPage(self,pageIndex):
url = self.siteURL + "?page=" + str(pageIndex)
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
return response.read().decode('gbk')
#获取索引界面所有MM的信息,list格式
def getContents(self,pageIndex):
page = self.getPage(pageIndex)
pattern = re.compile('<div class="list-item".*?pic-word.*?<a href="(.*?)".*?<img src=&