1.简述
上篇博客是 scrapy框架与 xpath抽取技术的结合
这次使用 正则抽取
目标:爬取校花网校花图片并保存在指定目录
2.配置
为防止触发反爬虫,依旧设置 爬取延迟 和 User-Agent 伪装浏览器
并规定不遵守目标网站的 robots 协议
3.上代码
因为没有使用 xpath ,所以 items 文件不写入内容
直接在爬虫文件 xiaohua.py 内写入
# -*- coding=utf-8 -*-
import re
from scrapy.http import Request
import scrapy
class XiaohuaSpider(scrapy.Spider):
name='xiaohua'
start_urls=['http://www.xiaohuar.com/list-1-0.html',]
# 循环爬取10页
def start_requests(self):
reqs=[]
for i in range(10):
req=scrapy.Request('http://www.xiaohuar.com/list-1-%s.html' %(i))
reqs.append(req)
return reqs
def parse(self, response):
if 'www.xiaohuar.com/list-1' in response.url:
html=response.text
#获取目标图片 url
img_urls=re.findall(r'/d/file/\d+/\w+\.jpg',html)
#循环下载
for img_url in img_urls:
if 'http://' not in img_url:
#完整域名
img_url='http://www.xiaohuar.com%s' %img_url
##回调,生成 response 对象 并返回给 parse函数
yield Request(img_url)
else:
#下载图片,获取图片地址完成后执行
url=response.url
#图片文件名
title=re.findall(r'(\w*.jpg)',url)[0]
#保存在指定目录
with open('/root/Desktop/xiaohua/%s' %title,'wb') as f:
f.write(response.body)
我们看 /root/ Desktop/ xiaohua 目录里内容
图片排放是无序的