首页 > 其他 > 详细

【Scrapy框架之发送POST请求】 򊘮

时间:2019-08-18 22:23:29      阅读:71      评论:0      收藏:0      [点我收藏+]

原文: 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请求】 򊘮

原文:https://www.cnblogs.com/bbb001/p/11373960.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!