是否有可能做(某种)多态性

时间:2018-12-20 17:50:21

标签: python-3.x web-scraping 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文件中获取的关键字,调用不同的解析器以从页面中提取数据。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

如何根据您在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])