使用循环在" start_urls"中输入值函数从csv输入值

时间:2015-02-02 08:13:44

标签: python python-2.7 csv scrapy

我基本上有一个要在网站上搜索的标题列表,这些标题存储在一个 CSV。

我提取这些值,然后尝试添加将它们附加到start_urls函数中的搜索链接。

但是,当我运行脚本时,它只占用列表的最后一个值。 这有什么特别的原因吗?

class MySpider(CrawlSpider):
      name = "test"
      allowed_domains = ["example.com"]
      import pandas as pd
      df = pd.read_csv('test.csv')
      saved_column = df.ProductName
      for a in saved_column:
        start_urls = ["http://www.example.com/search?noOfResults=20&keyword="+str(a)"]

      def parse(self,response):

1 个答案:

答案 0 :(得分:1)

您的代码中存在概念错误。你正在进行循环但除了旋转网址之外没有任何其他操作。因此,使用循环的最后一个值调用parse函数。

可能的其他方法是覆盖蜘蛛的'start_requests'方法:

def start_requests(self):
    df = pd.read_csv('test.csv')
    saved_column = df.ProductName
    for url in saved_column:
        yield Request(url, self.parse)

想法来自这里:How to generate the start_urls dynamically in crawling?