IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> scrapy框架-----crawlspider全栈数据爬取 -> 正文阅读

[Python知识库]scrapy框架-----crawlspider全栈数据爬取

一、创建crawlspider

 scrapy genspider -t crawl spisers xxx.com

spiders为爬虫名 域名开始不知道可以先写xxx.com
代替

二、爬取彼岸图网分类下所有图片

创建完成后只需要修改start_urls 以及LinkExtractor中内容并将follow改为True,如果不改的话
在这里插入图片描述
只能提取到1、2、3、4、5、6、7、53的网页,允许后自动获取省略号中未显示的页面url

class BeautySpider(CrawlSpider):
    name = 'beauty'
    # allowed_domains = ['xxxx.com']
    start_urls = ['https://pic.netbian.com/4kmeinv/']
    links = LinkExtractor(allow=r'/4kmeinv/.*?.html')
    rules = (
        Rule(links, callback='parse_item', follow=True),
    )

在LinkExtractor中allow中写统一链接的正则表达式,不需要很完整,能够与其他链接辨别开就行
也可以使用xpath,css (restrict_xpaths=, restrict_css= )

三、 页面内容提取

由于该网站没有反爬措施因此无需设置其他内容,这里提取了页面的url以及标题

    def parse_item(self, response):
        item = WomenspiderItem()
        lis = response.xpath('//*[@id="main"]/div[3]/ul/li')
        for li in lis:
            url = li.xpath('./a/img/@src').extract_first()
            title = li.xpath('./a/b/text()').extract_first()
            item['title'] = title
            # 添加域名使url完整
            item['img_url'] = 'https://pic.netbian.com/'+url
            yield item

四、图片下载

开启管道,这里自定义下载图片继承自带的ImagesPipeline类

class DownloadsimgPipline(ImagesPipeline):
    def get_media_requests(self, item, info):
        url = item['img_url']
        yield Request(url=url, meta={'item': item})

    def file_path(self, request, response=None, info=None, *, item=None):

        item = request.meta['item']
        image_guid = hashlib.sha1(to_bytes(request.url)).hexdigest()
        return u'{0}/{1}.jpg'.format(IMAGES_STORE, image_guid)

自定义下载只需要重写get_media_requests和file_path,这两个方法(如有其他需求可以重写其他方法,仅仅下载图片到本地指定内容修改这两个方法足以)
IMAGES_STORE这里在settings中添加的下载的路径名不能自定义名,否则无法下载。

完整代码:

爬虫代码

import scrapy
from womenSpider.items import WomenspiderItem
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule


class BeautySpider(CrawlSpider):
    name = 'beauty'
    # allowed_domains = ['xxxx.com']
    start_urls = ['https://pic.netbian.com/4kmeinv/']

    rules = (
        Rule(LinkExtractor(allow=r'/4kmeinv/.*?.html'), callback='parse_item', follow=False),
    )

    def parse_item(self, response):
        item = WomenspiderItem()
        lis = response.xpath('//*[@id="main"]/div[3]/ul/li')
        for li in lis:
            url = li.xpath('./a/img/@src').extract_first()
            title = li.xpath('./a/b/text()').extract_first()
            item['title'] = title
            item['img_url'] = 'https://pic.netbian.com/'+url
            yield item

settings设置
在这里插入图片描述
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 15:03:18  更:2021-08-20 15:05:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 8:47:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码