使用python的scrapy框架爬图+图文

版权声明:author:Old Monster ,qq:767267711 ,email:[email protected] https://blog.csdn.net/qq_42259469/article/details/84543124

使用python的scrapy框架爬美女图

我使用的工作环境如下
工 具 :PyCharm
python :3.7.0
框 架 :Scrapy

爬图目标美桌壁纸:http://www.win4000.com/

项目开始前先安装我们的scrapy框架直接在cdm输入:pip install Scrapy

ok,开始新建我们的项目直接在cmd输入:scrapy startproject 项目名称,以下提示就创建好项目了.
在这里插入图是否片是否述
用PyCharm打开我们的项目
在这里插入图片描述
接着在终端Terminal新建我们的爬虫项目输入以下命令

scrapy genspider -t crawl 项目名称 网址

在这里插入图片描述
会在spiders下生成一个meizhuo.py文件,在里面我们设置相关数据

name = 'meizhuo'			#爬虫名称
allowed_domains = ['win4000.com']	#网址域名
start_urls = ['http://www.win4000.com/meitu.html']	#爬取页面

在这里插入图片描述
在rules里写入规则(meizhuo.py下)

rules = (
    Rule(LinkExtractor(allow=r'http://www.win4000.com/meinv\d+.html'), callback='parse_item', follow=True),
    Rule(LinkExtractor(allow=r'http://www.win4000.com/meinv\d+_\d+.html'), callback='parse_item', follow=True),
)

在这里插入图片描述
在这里插入图片描述获取图片的唯一链接,在开发者模式下Ctrl+F,获取到后赋值粘贴到下面(meizhuo.py下)

def parse_item(self, response):
    i = MeizhuobizhiItem()
    #提取图片url 供下载用,['image_urls'] 里面的image_urls是和items里的名字要一致
    i['image_urls'] = response.xpath('.//div[@id="pic-meinv"]/a/img/@data-original').extract()
    yield i

在这里插入图片描述
在items.py下(它是我们整个数据存储的地方)

class MeizhuobizhiItem(scrapy.Item):
    image_urls = scrapy.Field()		#图片的url
    images = scrapy.Field()	

在我们的爬虫项目里导入items和图片管道(meizhuo.py下)

from ..items import MeizhuobizhiItem		#items
from scrapy.pipelines.images import ImagesPipeline	#图片管道

在这里插入图片描述
然后赋值图片管道改成"."到settings.py里的ITEM_PIPELINES 注册格式如下(settings.py下)

ITEM_PIPELINES = {
   'scrapy.pipelines.images.ImagesPipeline': 300,
}
IMAGES_STORE='美桌美女'		#存储图片文件夹的名字

配置默认的请求头(settings.py下)

DEFAULT_REQUEST_HEADERS = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language': 'en',
  'Referer':'http://www.win4000.com/'       #域名,默认请求地址
}

ROBOTSTXT_OBEY = True可以改成False拒绝遵守 Robot协议(settings.py下)
在这里插入图片描述
ok在终端运行我们的爬虫输入以下命令:

扫描二维码关注公众号,回复: 4625507 查看本文章
scrapy crawl meizhuo

在这里插入图片描述
运行后会发现项目里多了一个存储图片的文件夹
在这里插入图片描述

在这里插入图片描述
爬了40分钟2万多张美女图,我停止了到底能爬多少你可以试试

在这里插入图片描述
在终端Ctrl+C 可以停止爬取
在这里插入图片描述码云源码地址:https://gitee.com/OldMonster/meizhuo

END

猜你喜欢

转载自blog.csdn.net/qq_42259469/article/details/84543124