我基本上有一个要在网站上搜索的标题列表,这些标题存储在一个 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):
答案 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?