Python爬虫——Scrapy框架使用实例及执行过程

Python爬虫——Scrapy框架使用实例及执行过程

1、Scrapy框架使用实例

1、创建scrapy项目

scrapy项目名:scrapy_02_tc

scrapy startproject scrapy_02_tc

2、创建爬虫文件

爬虫文件名:tc_test

要访问的域名:https://gz.58.com/sou/?key=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91&classpolicy=classify_D

scrapy genspider tc_test https://gz.58.com/sou/?key=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91&classpolicy=classify_D

3、编写爬虫程序

修改配置文件:settings.py

ROBOTSTXT_OBEY = False
USER_AGENT = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36

在 tc_test.py 文件中编写爬虫程序:

import scrapy


class TcTestSpider(scrapy.Spider):
    name = 'tc_test'
    allowed_domains = ['https://gz.58.com/sou/?key=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91&classpolicy=classify_D']
    start_urls = ['https://gz.58.com/sou/?key=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91&classpolicy=classify_D']

    def parse(self, response):

        # 使用xpath解析
        span = response.xpath('//div[@id="filter"]/div[@class="tabs"]/a/span')[0]
        print(span.extract())
        print(span.extract_first())  # 提取列表中第1个文本内容

Selector(选择器):Scrapy 提供的数据提取方法,Selector 基于 lxml ,支持 XPath 选择器、CSS 选择器以及正则表达式,功能全面,解析速度和准确度非常高。

  • extract():提取selector对象的文本内容

  • extract_first():提取selector列表中的第1个文本内容

response 属性:

  • response.text:获取响应对象的字符串格式数据
  • response.body:获取响应对象的二进制格式数据

2、Scrapy框架执行过程

Scrapy框架执行过程图如下:

在这里插入图片描述

Scrapy框架执行过程步骤描述:

  • ①:spiders把待爬取的 URL传递给引擎
  • ②:引擎再把url传递给调度器
  • ③:调度器将url生成请求对象放入指定队列中,再从队列中取出第一个请求交给引擎
  • ④:引擎再把请求传递给下载器
  • ⑤:下载器向互联网发送请求下载数据(response对象)
  • ⑥:然后下载器先把数据传递给引擎,引擎再把数据传递给spiders
  • ⑦:spider用xpath处理、分析,并提取出所需要的数据,得到解析结果,然后传递给引擎
  • ⑧:引擎判断解析结果是数据还是url,如果是数据,就把数据传递给管道,由管道进行保存;如果是url,则交给调度器

上述Scrapy框架执行过程会一直循环,直到没有要爬取的 URL 时才会停止。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万里顾—程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值