zoukankan      html  css  js  c++  java
  • scrapy请求发送详解

    scrapy自动发送请求

      对start_urls列表中存储的起始url进行过请求的发送并没有通过手动实现,但是在parse函数中还是获取到了响应数据,这是因为爬虫文件中的爬虫类继承到了Spider父类中的start_requests(self)这个方法,该方法就可以对start_urls列表中的url发起请求:

    1 def start_requests(self):
    2         for u in self.start_urls:
    3            yield scrapy.Request(url=u,callback=self.parse)

    【注意】该方法默认的实现,是对起始的url发起get请求,如果想发起post请求,则需要子类重写该方法。

    1 def start_requests(self):
    2         #请求的url
    3         post_url = 'http://fanyi.baidu.com/sug'
    4         # post请求参数
    5         formdata = {
    6             'kw': 'wolf',
    7         }
    8         # 发送post请求
    9         yield scrapy.FormRequest(url=post_url, formdata=formdata, callback=self.parse)

    手动对需要获取的内容的url发起请求  

    1 #手动发起get请求,url指定,callback指定回调解析函数(可自定义),meta可以传递参数,封装在request中以便回调解析函数使用(request.item)
    2 yield scrapy.Request(url=url,callback=self.parse1,meta={})
    3 #手动发起post请求:formdata为请求参数,callback指定回调解析函数(可自定义),meta可以传递参数,封装在request中
    4 yield scrapy.FormRequest(url=url,formdata=formdata, callback=self.parse2,meta={})

    在请求中,cookie的处理是scrapy自动封装好的。

      

  • 相关阅读:
    【LeetCode】1404. 将二进制表示减到 1 的步骤数
    【剑指Offer】面试题12. 矩阵中的路径(DFS)
    【LeetCode】994. 腐烂的橘子(BFS)
    【LeetCode】365. 水壶问题(BFS/裴蜀定理)
    【LeetCode】169. 多数元素(摩尔投票法)
    ASP.NET页面间传值
    SQL——基础概念
    SQL——登陆触发器实现限制IP
    SQL Server之null
    SQL Server服务器连接配置
  • 原文地址:https://www.cnblogs.com/open-yang/p/11330098.html
Copyright © 2011-2022 走看看