当前位置 : 主页 > 编程语言 > python >

scrapy之发送POST请求

来源:互联网 收集:自由互联 发布时间:2022-06-18
可以使用 yield scrapy.FormRequest(url, formdata, callback)方法发送POST请求。 如果希望程序执行一开始就发送POST请求,可以重写Spider类的start_requests(self) 方法,并且不再调用start_urls里的url。 例如


可以使用 yield scrapy.FormRequest(url, formdata, callback)方法发送POST请求。

如果希望程序执行一开始就发送POST请求,可以重写Spider类的start_requests(self) 方法,并且不再调用start_urls里的url。

例如:

class mySpider(scrapy.Spider):
# start_urls = ["http://www.baidu.com/"]

def start_requests(self):
url = 'http://www.renren.com/PLogin.do'

# FormRequest 是Scrapy发送POST请求的方法
yield scrapy.FormRequest(
url = url,
formdata = {"email" : "xxx", "password" : "xxxxx"},
callback = self.parse_page
)
def parse_page(self, response):
# do something

注意:表单数据的提交使用formdata,方法之间的传参依然使用meta,例如:

class mySpider(scrapy.Spider):
# start_urls = ["http://www.example.com/"]

def start_requests(self):
url = 'http://www.renren.com/PLogin.do'

# FormRequest 是Scrapy发送POST请求的方法
yield scrapy.FormRequest(
url = url,
formdata = {"email" : "xxx", "password" : "xxxxx"},
callback = self.parse_page,
meta = {"key1":"value1","key2":"value2"}
)
def parse_page(self, response):
value1 = response.meta["key1"]
# do something



【文章原创作者:韩国高防服务器 http://www.558idc.com/krgf.html 网络转载请说明出处】
上一篇:python 3 实现定义跨模块的全局变量和使用
下一篇:没有了
网友评论