gpt4 book ai didi

python - scrapy可以根据id提交输入吗?

转载 作者:太空宇宙 更新时间:2023-11-03 21:10:48 25 4
gpt4 key购买 nike

我有一个包含多个输入字段的 Intranet 页面,我需要 Scrapy 使用网页“搜索产品”输入字段运行搜索,它的 id 为“searchBox”

我已经能够使用 Scrapy 和 Beautiful Soup 锁定正确的搜索框,但我不确定如何将该数据正确传递回 Scrapys 表单提交功能。

在方法1中,我尝试简单地将结果传递给Scrapys FormRequest.from_response函数作为输入,但它不起作用。

方法1 - 使用Scrapy查找数据

#Search for products
def parse(self, response):

##Let's try search using scrapy only
sel = Selector(response)
results = sel.xpath("//*[contains(@id, 'searchBox')]")
for result in results:
print (result.extract()) #Print out what scrapy found
return scrapy.FormRequest.from_response(results, formdata = {'Item': 'Whirlpool Washing Machine'}) #formdata is the data we are sending

方法2 - 使用Beautiful soup查找数据

#Search for products
def parse(self, response):

##Let's try search using Beautiful Soup only
soup = BeautifulSoup(response.text, 'html.parser')
product_search = []
product_search.append(soup.find("input", id="searchBox"))
print(product_search) #Print what BS found

最佳答案

关于 scrapy 变体:

  1. 您应该屈服请求,而不是返回
  2. 在函数 from_response 中,您应该使用表单选择器作为第一个参数。现在,据我从您的代码中可以理解的内容,您传递了一些输入数据。

尝试如下:

yield scrapy.FormRequest.from_response(response.css('form'), formdata={'Item': 'Whirlpool Washing Machine'})

只需修复此表达式中的表单选择器即可。还要检查此请求中还应使用哪些内容,也许是一些 header 、cookie 等。

关于python - scrapy可以根据id提交输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55079063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com