Scrapy 表单请求
Scrapy FormRequest
我在使用 scrapy FormRequest 时遇到了问题。我正在尝试从此页面获取所有评论(无限滚动):https://www.temporel-voyance.com/voyance/planning/consultations-voyants-en-privee/angele/1041
当我滚动时,我可以看到一个 post 请求,其数据形式为:{xyz":"3"}
但是当我用 scrapy 命令行尝试时,我无法得到正确的响应。
from scrapy import FormRequest
fetch("https://www.temporel-voyance.com/voyance/planning/consultations-voyants-en-privee/angele/1041")
req = FormRequest(response.url, formdata={"xyz":"3"})
fetch(req)
我查看了此页面:https://blog.scrapinghub.com/2016/06/22/scrapy-tips-from-the-pros-june-2016 但我仍然卡住了。
有人可以帮助我吗?
非常感谢!
米尔哈
如果您仔细查看发出的请求,您会发现它实际上发送给了另一个 url,https://www.temporel-voyance。com/voyants/temoignages ?voyant_id=1041
如果您向 url 提出表单请求,您将获得更新后的数据:
>>> req = scrapy.FormRequest('https://www.temporel-voyance.com/voyants/temoignages?voyant_id=1041', formdata={'xyz': '3'})
>>> fetch(req)
2018-10-20 13:43:42 [scrapy.core.engine] DEBUG: Crawled (200) <POST https://www.temporel-voyance.com/voyants/temoignages?voyant_id=1041> (referer: None)
>>> response.css('.name_user b::text').getall()
['Chou', 'Jérôme', 'Sonia']
我在使用 scrapy FormRequest 时遇到了问题。我正在尝试从此页面获取所有评论(无限滚动):https://www.temporel-voyance.com/voyance/planning/consultations-voyants-en-privee/angele/1041
当我滚动时,我可以看到一个 post 请求,其数据形式为:{xyz":"3"}
但是当我用 scrapy 命令行尝试时,我无法得到正确的响应。
from scrapy import FormRequest
fetch("https://www.temporel-voyance.com/voyance/planning/consultations-voyants-en-privee/angele/1041")
req = FormRequest(response.url, formdata={"xyz":"3"})
fetch(req)
我查看了此页面:https://blog.scrapinghub.com/2016/06/22/scrapy-tips-from-the-pros-june-2016 但我仍然卡住了。
有人可以帮助我吗?
非常感谢! 米尔哈
如果您仔细查看发出的请求,您会发现它实际上发送给了另一个 url,https://www.temporel-voyance。com/voyants/temoignages ?voyant_id=1041
如果您向 url 提出表单请求,您将获得更新后的数据:
>>> req = scrapy.FormRequest('https://www.temporel-voyance.com/voyants/temoignages?voyant_id=1041', formdata={'xyz': '3'})
>>> fetch(req)
2018-10-20 13:43:42 [scrapy.core.engine] DEBUG: Crawled (200) <POST https://www.temporel-voyance.com/voyants/temoignages?voyant_id=1041> (referer: None)
>>> response.css('.name_user b::text').getall()
['Chou', 'Jérôme', 'Sonia']