Scrapy如何实现发送带有POST数据的请求?
- 内容介绍
- 文章标签
- 相关推荐
本文共计276个文字,预计阅读时间需要2分钟。
可以使用 `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 = ["www.baidu.com/"]
def start_requests(self):
url = '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 = ["www.example.com/"]
def start_requests(self):
url = '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
本文共计276个文字,预计阅读时间需要2分钟。
可以使用 `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 = ["www.baidu.com/"]
def start_requests(self):
url = '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 = ["www.example.com/"]
def start_requests(self):
url = '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

