说明
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())
以上就是python scrapy.Request发送请求的方式,希望对大家有所帮助。更多Python学习指路:
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。