说明
1、使用scrapy.Request()指定method,body参数发送post请求。
2、使用scrapy.FormRequest()发送post请求,或发送表格和ajax请求。
实例
importscrapy classgit2Spider(scrapy.Spider): name='git2' allowed_domains=['github.com'] start_urls=['http://github.com/login'] defparse(self,response): username='GitLqr' password='balabala' #post数据从登录页面响应中分析 token=response.xpath('//input[@name="authenticity_token"]/@value').extract_first() post_data={ 'commit':'Signin', 'authenticity_token':token, 'login':username, 'password':password, 'webauthn-support':'supported', } print(post_data) #为登录url发送post请求 yieldscrapy.FormRequest( url='https://github.com/session', callback=self.after_login, formdata=post_data ) defafter_login(self,response): yieldscrapy.Request('https://github.com/GitLqr',callback=self.check_login) defcheck_login(self,response): print(response.xpath('/html/head/title/text()').extract_first())
以上是python scrapy.Request发送请求的方式,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。