第十七章 爬虫scrapy登录与中间件2

文章目录

  • [1. 链接提取](#1. 链接提取)
  • [2. crawlspider全站数据爬取](#2. crawlspider全站数据爬取)
  • [3. Redis简单使用](#3. Redis简单使用)

增加爬取延迟 setting文件中,取消注释DOWNLOAD_DELAY = 3

1. 链接提取

python 复制代码
# 导包
from scrapy.linkextractors import LinkExtracto

def parse(self, resp,**kwargs):
	le = LinkExtractor(restrict_xpaths=('//ul[@class="viewlist_ul"]/li/a',))
	links = le.extract_links(resp)

'''
链接提取方法
def __init__(
        self,
        allow=(),# 允许提取,使用正则
        deny=(), 不允许提取,使用正则
        allow_domains=(), 允许提取的域名
        deny_domains=(),
        restrict_xpaths=(), 使用xpath提取
        tags=("a", "area"),
        attrs=("href",),
        canonicalize=False,
        unique=True,
        process_value=None,
        deny_extensions=None,
        restrict_css=(),
        strip=True,
        restrict_text=None,
    ):

'''

dont_filter 的用法

python 复制代码
    def process_response(self, request, response, spider):
        # Called with the response returned from the downloader.

        # Must either;
        # - return a Response object
        # - return a Request object
        # - or raise IgnoreRequest
        if response.status != 200:  
            request.dont_filter = True #检查代理是否可用,不可用重复请求
            return request
        return response

2. crawlspider全站数据爬取

python 复制代码
# 创建scrapy全站模板
scrapy genspider -t crawl pachpng baidu.com

class ErshouqicheSpider(CrawlSpider):
    name = "ershouqiche"
    allowed_domains = ["che168.com","autohome.com.cn"]
    start_urls = ["https://www.che168.com/china/list/"]

    rules = (Rule(LinkExtractor(restrict_xpaths=('//ul[@class="viewlist_ul"]/li/a',)), callback="parse_item", follow=False),
             Rule(LinkExtractor(restrict_xpaths=('//div[@class="page fn-clear"]/a',)), follow=True))

    def parse_item(self, response):
        print(response.url)
        tittle = response.xpath("//h3[@class='car-brand-name']/text()").extract_first()
        price = response.xpath("//span[@id='overlayPrice']/text()").extract_first()
        #item["domain_id"] = response.xpath('//input[@id="sid"]/@value').get()
        #item["name"] = response.xpath('//div[@id="name"]').get()
        #item["description"] = response.xpath('//div[@id="description"]').get()
        print(tittle,price)

3. Redis简单使用

下载:http://redis.cn/download.html

redis命令

sql 复制代码
#将redis安装到windows服务
redis-server.exe --service-install redis.windows. conf --loglevel verbose
#卸载服务:
redis-server --service-uninstall
#开启服务:
redis-server --service-start
#停止服务:
redis-server --service-stop

配置redis

登录redis

RDM redis可视化工具的安装

https://blog.csdn.net/qq_39715000/article/details/120724800

redis常见数据类型

redis中常见的数据类型有5个.

自增

redis操作

hash

列表

集合

redis教程列表

https://www.runoob.com/redis/redis-sorted-sets.html

python使用resid

pip install redis

相关推荐
小白学大数据1 天前
Pycharm 断点调试 Scrapy:两种实现方式总结
c++·爬虫·scrapy·pycharm
ん贤20 天前
Scrapy 嵌入 FastAPI 的坑:Asyncio/Twisted 桥接 + 代理池设计
python·scrapy·fastapi
龙腾AI白云1 个月前
具身智能体的长期任务规划与记忆机制
python·scrapy·plotly·数据挖掘·pyqt
青春不朽5121 个月前
Scrapy框架入门指南
python·scrapy
泡泡以安1 个月前
Scrapy分布式爬虫调度器架构设计说明
分布式·爬虫·scrapy·调度器
yq1982043011561 个月前
构建高可用资源导航平台:基于Django+Scrapy的分布式架构实践
分布式·scrapy·django
袖清暮雨1 个月前
Python爬虫(Scrapy框架)
开发语言·爬虫·python·scrapy
岱宗夫up1 个月前
Scrapy框架实战教程(上):从入门到实战,搭建你的第一个专业爬虫
爬虫·python·scrapy
B站计算机毕业设计超人1 个月前
计算机毕业设计hadoop+spark+hive在线教育可视化 课程推荐系统 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·人工智能·hive·hadoop·scrapy·spark·课程设计
强化试剂瓶1 个月前
全面掌握Ergosterol-PEG-Biotin,麦角甾醇PEG生物素的使用与注意事项
python·scrapy·flask·scikit-learn·pyqt