parsing - 如何在网页抓取期间将其他参数传递给scrapy中的蜘蛛解析函数
问题描述
我正在尝试将其他信息传递给 parse 函数,但它给出了类型错误。
TypeError: parse() got an unexpected keyword argument 'body' 我无法解决这个问题。
"""
return [scrapy.Request(url=website.search_url.format(prod), callback=self.parse,
cb_kwargs = {"body":website.body_xpath,"product_list":website.products_list_xpath,
"names":website.products_name_xpath,"selling_price":website.selling_price_xpath,
"market_price":website.market_price_xpath}) for website in websites for prod in modified_products]
def parse(self, response):
body = response.cb_kwargs.get("body")
product_list = response.cb_kwargs.get("product_list")
name = response.cb_kwargs.get("names")
selling_price = response.cb_kwargs.get("selling_price")
market_price = response.cb_kwargs.get("market_price")
"""
解决方案
我忘了在解析函数定义中写这些名字,添加它们后我得到了正确的结果。感谢您查看它。
"""
return [scrapy.Request(url=website.search_url.format(prod), callback=self.parse,
cb_kwargs = dict(body = website.body_xpath, product_list = website.products_list_xpath,
name = website.products_name_xpath, selling_price = website.selling_price_xpath,
market_price = website.market_price_xpath)) for website in websites for prod in modified_products]
def parse(self, response, body, product_list, name, selling_price, market_price):
body = response.cb_kwargs["body"]
product_list = response.cb_kwargs["product_list"]
name_ = response.cb_kwargs["name"]
selling_price_ = response.cb_kwargs["selling_price"]
market_price_ = response.cb_kwargs["market_price"]
"""
推荐阅读
- c# - 模运算符 c# 示例
- flutter - DropdownButtonHideUnderline 在构建中没有正确显示箭头
- electron - 在 contextBridge 中未定义的电子对话框
- css - 在带有 React CSS 语法的样式化组件中使用 CSS 导入
- php - 当关系是多对多时,如何将其插入数据库?
- excel - 从另一个工作簿导入数据后,在指定列上触发宏
- python - 如何在 dupeguru 中使用符号和非字母数字字符过滤特定扩展名
- bash - 您可以在 shell 脚本的管道之间插入换行符吗?
- mediapipe - 是项目 https://github.com/google/mediapipe opensourse
- java - 用于实现不断变化的组件的更好的设计模式