使用 Loop to enter values in "start_urls" 函数从 csv 输入值

Using a Loop to enter values in "start_urls" function to input values from a csv

我基本上有一个可以在网站上搜索的标题列表,这些标题存储在 csv.

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

但是,当我 运行 脚本时,它只取列表的最后一个值。 发生这种情况有什么特别的原因吗?

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):

您的代码中存在概念性错误。您正在制作循环,但除了旋转网址外没有任何其他操作。所以解析函数是用循环的最后一个值调用的。

另一种可能的方法是覆盖蜘蛛的 '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?