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

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

"实现发送POST请求

在爬虫文件中,我们一般不需要手动的对start_urls列表中的起始url发送请求,因为爬虫文件中的爬虫类继承了父类Spider,Spider类中的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

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

时间: 2024-10-08 15:42:19

【Scrapy框架之发送POST请求】 򊘮的相关文章

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

手动发送请求 import scrapy from choutiSpider.items import ChoutispiderItem class ChoutiSpider(scrapy.Spider): name = 'chouti' # allowed_domains = ['www.xxx.com'] start_urls = ['https://dig.****.com/r/scoff/hot/1'] # 通用模板 url url = 'https://dig.****.com/r/s

scrapy携带payload发送post请求

url_rl = "https://www.yijiupi.com/v31/Product/ListProduct" payload = '{"currentPage":1,"data":{"sonCategoryId":"%s","categoryIds":["%s"],"saleModel":-1,"sort":0,&quo

基于scrapy框架的爬虫

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. scrapy 框架 高性能的网络请求 高性能的数据解析 高性能的持久化存储 深度爬取 全站爬取 分布式 中间件 请求传参 环境的安装 mac/linux:pip install scrapy windows: pip install wheel twisted(异步相关,scrapy 的异步由twisted实现) 一定要在twisted安装成功的情况下执行后面的

scrapy 框架

框架 - 就是一个集成了很多功能且具有很强通用性的一个项目模板.(项目的半成品)- 学习每一个功能的作用及其用法即可 scrapy 框架 - 高性能的网络请求- 高性能的数据解析- 高性能的持久化存储- 深度爬取- 全栈爬取- 分布式- 中间件- 请求传参 环境的安装 - mac/linux:pip install scrapy - window: - pip install wheel - 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/

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

# settings 配置 UA USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36' 一丶scrapy的图片数据爬取(流数据的爬取) ? scrapy中封装好了一个管道类(ImagesPipeline),基于该管道类可以实现图片资源的请求和持久化存储 编码流程: 爬虫文件中解析出图片的地址 将

scrapy框架之递归解析和post请求

1.递归爬取解析多页页面数据 - 需求:将糗事百科所有页码的作者和段子内容数据进行爬取切持久化存储 - 需求分析:每一个页面对应一个url,则scrapy工程需要对每一个页码对应的url依次发起请求,然后通过对应的解析方法进行作者和段子内容的解析. 实现方案: 1.将每一个页码对应的url存放到爬虫文件的起始url列表(start_urls)中.(不推荐) 2.使用Request方法手动发起请求.(推荐) 代码展示: # -*- coding: utf-8 -*- import scrapy f

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

爬虫学习 12.scrapy框架之递归解析和post请求 今日概要 递归爬取解析多页页面数据 scrapy核心组件工作流程 scrapy的post请求发送 今日详情 1.递归爬取解析多页页面数据 - 需求:将糗事百科所有页码的作者和段子内容数据进行爬取切持久化存储 - 需求分析:每一个页面对应一个url,则scrapy工程需要对每一个页码对应的url依次发起请求,然后通过对应的解析方法进行作者和段子内容的解析. 实现方案: 1.将每一个页码对应的url存放到爬虫文件的起始url列表(start_

爬虫5 scrapy框架2 全站爬取cnblogs, scarpy请求传参, 提高爬取效率, 下载中间件, 集成selenium, fake-useragent, 去重源码分析, 布隆过滤器, 分布式爬虫, java等语言概念补充, bilibili爬视频参考

1 全站爬取cnblogs # 1 scrapy startproject cnblogs_crawl # 2 scrapy genspider cnblogs www.cnblogs.com 示例: # cnblogs_crawl/cnblogs_crawl/spiders/cnblogs.py import scrapy from cnblogs_crawl.items import CnblogsCrawlItem from scrapy.http import Request class

采用Android中的httpclient框架发送get请求

/** * 采用httpclientGet请求的方式 * * @param username * @param password * @return null表示求得的路径有问题,text返回请求得到的数据 */ public static String httpclientGet(String username, String password) { try { // 1.打开一个浏览器 HttpClient client = new DefaultHttpClient(); // 2.输入地