Scrapy框架之发送POST请求 򊘮

Posted bbb001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scrapy框架之发送POST请求 򊘮相关的知识,希望对你有一定的参考价值。

原文: http://blog.gqylpy.com/gqy/364

"实现发送POST请求

在爬虫文件中,我们一般不需要手动的对start_urls列表中的起始url发送请求,因为爬虫文件中的爬虫类继承了父类SpiderSpider类中的start_requests方法会自动向起始url列表中的所有url发起请求。

但需要注意的是,start_requests方法发起的是GET请求,如果我们想发起POST请求,则需要在子类中重写该方法。

下面我们将重写start_requests方法,来实现POST请求的发送:

# -*- coding: utf-8 -*-
import scrapy


class Test01Spider(scrapy.Spider):
    name = 'test01'
    start_urls = ['https://fanyi.baidu.com/sug']

    def parse(self, response):
        print(response)  # <200 https://fanyi.baidu.com/sug>

    # 重写父类方法,实现发送POST请求
    def start_requests(self):
        post_url = 'https://fanyi.baidu.com/sug'  # 百度翻译
        data = 'kw': '好'  # 你要翻译的内容
        for url in self.start_urls:
            yield scrapy.FormRequest(url=url, formdata=data, callback=self.parse)
            # scrapy.FormRequest():用于发起POST请求
            # 参数callback用于指定回调函数,即解析的方法

五大核心组件工作流程

技术图片

1. 引擎 Scrapy
用于处理整个系统的数据流,触发事务(框架核心)。

2. 调度器 Scheduler
用于接收引擎发过来的请求,加入队列中,并在引擎再次发起请求的时候返回。可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是什么,同时去除重复的网址。

3. 下载器 Downloader
用于下载网页内容,并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高校的异步模型上的)。

4. 爬虫 Spiders
爬虫主要是干活的,用于从特定的网页中爬取自己想要的信息,即所谓的实体(Item)。用于也可以从中提取出链接,让Scrapy继续抓取下一个页面。

5. 管道 Pipeline
负责处理爬虫从网页中抽取的实体,主要功能是持久化实体、验证实体的有效性、清楚不需要的信息。当页面被爬虫解析后,将发送到项目管道,并经过几个特定的次序处理数据。
"

原文: http://blog.gqylpy.com/gqy/364

以上是关于Scrapy框架之发送POST请求 򊘮的主要内容,如果未能解决你的问题,请参考以下文章

爬虫学习 12.scrapy框架之递归解析和post请求

Scrapy 框架 手动发送请求 POST 请求的发送

python爬虫scrapy入门8:发送POST请求

python爬虫scrapy入门8:发送POST请求

scrapy基础知识之发送POST请求:

python爬虫---scrapy框架爬取图片,scrapy手动发送请求,发送post请求,提升爬取效率,请求传参(meta),五大核心组件,中间件