Scrapy爬虫(2)爬取新浪旅游图片

jclian91 2017-11-27

python 加密 url class scrapy parse

  本次分享将展示如何利用Scrapy爬取网页中的图片。爬取的网页如下:
  
  首先建立sina_trip项目:

scrapy startproject sina_trip

在settings.py中,添加以下代码:

ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline': 1} # 开启图片下载
IMAGES_URLS_FIELD = 'url' # 图片的网址字段为url
IMAGES_STORE = r'.' # 图片储存地址为当前目录

items.py中的代码如下:

import scrapy

# 创建字段,本例中只需要图片的网址,故只有一个字段url
class SinaTripItem(scrapy.Item):
    url  = scrapy.Field()

之后在spiders文件夹下新建文件sina_trip_spider.py,代码如下:

import scrapy
from scrapy.spiders import Spider  
from scrapy.selector import Selector  
from sina_trip.items import SinaTripItem  

# 创建爬虫,用于爬取网页中的图片
class sinaTripSpider(Spider):  
    name = "sinaTripSpider"    # 爬虫的名称 
    start_urls = ["http://travel.sina.com.cn/"]  #需要爬取的网址 

    def parse(self, response):   #parse function
        item = SinaTripItem() # 创建字段实例
        sel = Selector(response) # 创建网页选择器,用于选取网页中的元素
        sites = sel.xpath("//img/@src").extract()   # 提取网页中所有图片的网址
        for site in sites: 
            item['url'] = ['http:'+site] # 视爬取的图片网址决定是否加'http'
            yield item

在终端输入命令:

scrapy crawl sinaTripSpider

运行结果如下:

运行完后,在spiders文件夹下会多出full文件夹,这是图片下载后保存的文件夹地址:

full文件夹里面的图片如下:

  Bingo,我们的图片爬虫也成功啦~~但是美中不足的是,图片保存的名称是用Hash值加密过的,可能并不是我们想要的图片名称,笔者会在之后的文章中讲到如何自定义保存后的图片的名称。欢迎大家持续关注~

  本文的Github地址如下,欢迎大家访问哈:https://github.com/jclian91/scrapy-for-sina_trip-



  本次分享到此结束,欢迎大家批评与交流~~

注意:本人现已开通两个微信公众号:因为Python(微信号为:python_math)以及轻松学会Python爬虫(微信号为:easy_web_scrape), 欢迎大家关注哦~~

登录 后评论
下一篇
云栖号资讯小编
19667人浏览
2020-07-13
相关推荐
scrapy 进阶使用
956人浏览
2017-12-05 03:29:00
从信息泄密谈到爬虫
4536人浏览
2017-07-04 16:33:00
Ubuntu16.04下Scrapy环境的搭建
1196人浏览
2017-11-16 00:44:00
scrapy-redis插件爬取示例
1044人浏览
2017-11-16 15:39:00
23个Python爬虫开源项目代码
4133人浏览
2018-09-07 09:09:00
Scrapy基础——Debug和test
661人浏览
2016-06-10 22:25:00
scrapy 实战练习
1091人浏览
2017-12-06 05:37:00
0
0
0
1308