使用 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?
我基本上有一个可以在网站上搜索的标题列表,这些标题存储在 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?