-
主要描述在windows 上如何用scrapy抓取煎蛋网妹子图所有的图片下载。
-
软件准备:winpython,啥都不说了,ipython很好用。
安装scrapy,进入winpython 执行scrapt\env.bat。这样就可以直接pip install scrapy;注意执行的log,好像还要安装一个service_identity,具体什么功能也不清楚。以后慢慢研究。
-
建立工程scrapy startproject myscrapy
建立spider scrapy genspider spider(需要进入myscrapy)
使用ImagesPipeLine,在settings.py中添加如下文件
ITEM_PIPELINES = {'scrapy.contrib.pipeline.images.ImagesPipeline':1}#使用imagespipeline
IMAGES_STORE = 'E:\download'#下载的路径
还可以过滤图片大小什么的,暂时用不到。
scrapy 提供imagespipe 提供图片下载功能,只要提供urls就行了。
定义item类
class xxxItem(scrapy.Item):
image_urls = scrapy.Field()
imges = scrapy.Field()
spider.py文件
class JiandanSpider(scrapy.Spider):
name = "jandan"
allowed_domains = ["jandan.net"]
start_urls = (
'http://jandan.net/ooxx',
)
def parse(self, response):
t = response.xpath('//div[1]/div/div[2]/p/img')
img_urls = t.xpath('@src').extract()
newItem = BlueItem(image_urls = img_urls)
yield newItem
#extract 每个图片的src,直接丢给ImagesPipeline处理。
sel_next_url = response.xpath('//div[2]/div/a')
for item in sel_next_url:
classname = item.xpath('@class').extract()
if len(classname) > 0:
if "previous-comment" in classname[0]:
urls = item.xpath('@href').extract()
for url in urls:
if "comments" in url:
print "-->",url,"<--"
yield scrapy.Request(url, callback = self.parse)
#提取下一个网页,重新发起请求。
坐等大巴大巴的妹子图片