天天看点

scrapy获取网页内容和图片下载

首先在终端命令行菜单键+R输入cmd进入命令行

然后再终端输入cd+空格 把储存的地址拉获取:

在存储的路径下创建一个小的项目输入scrapy startproject QiuShi,然后输入cd QiuShi进入项目下再然后输入创建scrapy genspider qiushi qiushibaike.com

创建好最后的结果是如下图:

scrapy获取网页内容和图片下载

我们直接进入主题:点击qiushi.py进入写代码界面:

scrapy获取网页内容和图片下载
scrapy获取网页内容和图片下载
scrapy获取网页内容和图片下载

获取热图里面的所有内容和图片下载;完整代码:

# -*- coding: utf-8 -*-
import scrapy
from  .. items import QiushiItem
class QiushiSpider(scrapy.Spider):
    name = 'qiushi'
    allowed_domains = ['qiushibaike.com']
    start_urls = ['https://www.qiushibaike.com/imgrank']

    def parse(self, response):
        # 获取文本内容
        content_list = response.xpath('//div[@class="content"]/span/text()').extract()
        # 获取图片链接
        thumb_list = response.xpath('//div[@class="thumb"]/a/img/@src').extract()
      

        item = QiushiItem()
        for content in content_list:
   
            # 去掉换行
            out_list = content.strip()
            # 内容保存txt格式
            with open('baike.txt', 'a', encoding='utf-8')as f:
                f.write(out_list)
                f.write('\n')

        for thumb in thumb_list:
            #拼接图片链接
            url = 'https:' + thumb
           
            item['url'] = [url]
            yield item
        # 获取下一页的链接
        next_url=response.xpath('//ul[@class="pagination"]/li[last()]/a/@href').extract()
    
        if len(next_url) != 0:
            # 拼接下一页网址
            nextUrl = 'http://www.qiushibaike.com' + next_url[0]
          
            yield scrapy.Request(url=nextUrl,callback=self.parse)      

我们先进入items.py:

scrapy获取网页内容和图片下载
scrapy获取网页内容和图片下载

接着我们进入settings.py配置管道:

scrapy获取网页内容和图片下载
scrapy获取网页内容和图片下载
scrapy获取网页内容和图片下载
scrapy获取网页内容和图片下载

配置好以后我们在终端输入scrapy crawl qiushi来运行:

输出的结果:

scrapy获取网页内容和图片下载
scrapy获取网页内容和图片下载