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

浅浅的花香味﹌ 2022-06-05 12:20 444阅读 0赞

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

  1. scrapy startproject sina_trip

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

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

items.py中的代码如下:

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

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

  1. import scrapy
  2. from scrapy.spiders import Spider
  3. from scrapy.selector import Selector
  4. from sina_trip.items import SinaTripItem
  5. # 创建爬虫,用于爬取网页中的图片
  6. class sinaTripSpider(Spider):
  7. name = "sinaTripSpider" # 爬虫的名称
  8. start_urls = ["http://travel.sina.com.cn/"] #需要爬取的网址
  9. def parse(self, response): #parse function
  10. item = SinaTripItem() # 创建字段实例
  11. sel = Selector(response) # 创建网页选择器,用于选取网页中的元素
  12. sites = sel.xpath("//img/@src").extract() # 提取网页中所有图片的网址
  13. for site in sites:
  14. item['url'] = ['http:'+site] # 视爬取的图片网址决定是否加'http'
  15. yield item

在终端输入命令:

  1. scrapy crawl sinaTripSpider

运行结果如下:
SouthEast 1
运行完后,在spiders文件夹下会多出full文件夹,这是图片下载后保存的文件夹地址:
SouthEast 2
full文件夹里面的图片如下:
SouthEast 3
  Bingo,我们的图片爬虫也成功啦~~但是美中不足的是,图片保存的名称是用Hash值加密过的,可能并不是我们想要的图片名称,笔者会在之后的文章中讲到如何自定义保存后的图片的名称。欢迎大家持续关注~

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


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

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

发表评论

表情:
评论列表 (有 0 条评论,444人围观)

还没有评论,来说两句吧...

相关阅读