python-3.x - 是否可以用scrapy做(某种)多态性
问题描述
我目前在尝试调整我的scrapy程序时遇到了一些问题。我尝试做的事情是根据我所在的“站点”使不同的解析器工作。
目前我有这个开始请求
def start_requests(self):
txtfile = open('productosABuscar.txt', 'r')
keywords = txtfile.readlines()
txtfile.close()
for keyword in keywords:
yield Request(self.search_url.format(keyword))
我想找到一种方法,根据我从 txt 文件中获得的关键字,调用不同的解析器来从页面中提取数据。
有没有办法做到这一点?
解决方案
如何根据你得到的关键字匹配回调start_requests
呢?就像是:
def start_requests(self):
keyword_callback = {
'keyword1': self.parse_keyword1,
'keyword2': self.parse_keyword2,
}
txtfile = open('productosABuscar.txt', 'r')
keywords = txtfile.readlines()
txtfile.close()
for keyword in keywords:
yield Request(self.search_url.format(keyword), callback=keyword_callback[keyword])
推荐阅读
- javascript - 如何访问对象的值?
- c++ - C ++程序未输入文件
- reactjs - 如何让 React-select Async 在 Wordpress 5 Block 中工作
- mysql - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表'gogogo.chatMessage'不存在
- c++ - 按位不运算如何给出负值
- php - 我需要帮助按日期对多维数组进行排序
- javascript - 此代码不断返回 Ball is not defined
- c# - 如何在 C# 中获取对象属性名称和值的列表?
- java - 递归方法无法将元素添加到arrayList
- java - 需要帮助:我的循环中出现了一些问题。我相信结果+结果字符串引起了问题?