scrapy 框架之post請求

2021-08-19 03:08:28 字數 1820 閱讀 2646

通常**通過 實現對某些表單字段(如資料或是登入介面中的認證令牌等)的預填充。

使用scrapy抓取網頁時,如果想要預填充或重寫像使用者名稱、使用者密碼這些表單字段,

可以使用formrequest, 可以使用 formrequest.from_response() 方法實現。

formrequest類

引數:

同request

formdata 表單引數(字典格式)

作用範圍:

模擬登陸

傳送post資料獲取響應

# -*- coding: utf-8 -*-

import scrapy

class

renrencomspider

(scrapy.spider):

name = 'renren.com'

allowed_domains = ['rneren.com']

# start_urls = ['']#其預設是get請求

# 檢查start_url

start_urls = ['']

# 因為start_urls預設是get請求,uj所以要重寫parse方法

defstart_requests

(self):

# 構建url

url = self.start_urls[0]

# 構建post_data資料

post_data =

# 預設有callback功能

yield scrapy.formrequest(url=url, formdata=post_data)

defparse

(self, response):

with open('wwww.html', 'wb') as f:

f.write(response.body)

pass

formrequest.from_response

引數:

response

formdata 表單引數(字典格式)

特性: 自動獲取表單並將表單資料提交

作用範圍:

填寫表單資料

# -*- coding: utf-8 -*-

import scrapy

class

renrenrtspider

(scrapy.spider):

name = 'renrenrt'

allowed_domains = ['renren.com']

start_urls = ['']

defparse

(self, response):

post_data=

# from_response需要乙個含有表單的響應,所以不需要重寫start_requests,

#在本函式中獲取到的response就含有登入表單,直接可以使用

yield scrapy.formrequest.from_response(

response=response,

callback=self.parse_login,

formdata=post_data,

)def

parse_login

(self, response):

with open('[email protected]', 'wb') as f:

f.write(response.body)

pass

scrapy框架 post請求方式

coding utf 8 import scrapy import json 1 sug的這個不能單獨使用 沒有響應 2 這個請求是乙個post請求 既然是post請求 引數就不能拼接 引數怎麼辦 scrapy的post請求 因為是post請求 那麼請求引數和請求資源路徑就是分開的 如果是分開的 那...

scrapy框架之遞迴解析和post請求

一.遞迴爬取解析多頁頁面資料 需求 將糗事百科所有頁碼的作者和段子內容資料進行爬取且持久化儲存 需求分析 每乙個頁面對應乙個url,則scrapy工程需要對乙個頁面對應的url一次發起請求,然後通過對應的解析方法進行作者和段子內容的解析.實現方案 1.將每乙個頁碼對應的url存放到爬蟲檔案的起始ur...

爬蟲 scrapy框架之遞迴解析和post請求

概要 需求 將糗事百科所有頁碼的作者和段子內容資料進行爬取切持久化儲存 需求分析 每乙個頁面對應乙個url,則scrapy工程需要對每乙個頁碼對應的url依次發起請求,然後通過對應的解析方法進行作者和段子內容的解析。實現方案 1.將每乙個頁碼對應的url存放到爬蟲檔案的起始url列表 start u...