导语:
本文主要介绍了关于python scrapy.Request发送请求的方式的相关知识,希望可以帮到处于编程学习途中的小伙伴
说明
1、使用scrapy.Request()指定method,body参数发送post请求。
2、使用scrapy.FormRequest()发送post请求,也可以发送表格和ajax请求。
实例
import scrapy
class Git2Spider(scrapy.Spider):
name = 'git2'
allowed_domains = ['github.com']
start_urls = ['http://github.com/login']
def parse(self, response):
username = 'GitLqr'
password = 'balabala'
# 从登录页面响应中解析出post数据
token = response.xpath('//input[@name="authenticity_token"]/@value').extract_first()
post_data = {
'commit': 'Sign in',
'authenticity_token': token,
'login': username,
'password': password,
'webauthn-support': 'supported',
}
print(post_data)
# 针对登录url发送post请求
yield scrapy.FormRequest(
url='https://github.com/session',
callback=self.after_login,
formdata=post_data
)
def after_login(self, response):
yield scrapy.Request('https://github.com/GitLqr', callback=self.check_login)
def check_login(self, response):
print(response.xpath('/html/head/title/text()').extract_first())
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python以相反的顺序输出三位数字08/18
- ♥ 如何在python中基于numpy创建矩阵09/06
- ♥ python写ini文件的详细教程11/15
- ♥ 如何理解整数对象存储在 Python 中的位置?12/15
- ♥ python如何从数字和输出中删除r和n11/04
- ♥ 用 Python 代码旋转地球!12/31
内容反馈