我已经看了很多解决方案,也许这只是我的错误。
我正在使用python / scrapy框架来抓取几个网站。这些网站为我们的数据集提供了.CSV文件。因此,我没有解析逐行提供的gridview,而是设置了scrapy来下载.CSV文件,然后打开CSV文件并将每个值写为Scrapy项。
我已将并发请求设置为1.我认为这会阻止Scrapy解析列表中的下一个请求,直到完成添加所有项目为止。不幸的是,.CSV文件越大,Scrapy解析行并将其作为项导入的时间就越长。在下一次请求之前,它通常会执行大约500kb CSV文件的一半。
logfiles = sorted([ f for f in os.listdir(logdir) if f.startswith('QuickSearch')])
logfiles = str(logfiles).replace("['", "").replace("']", "")
##look for downloaded CSV to open
try:
with open(logfiles, 'rU') as f: ##open
reader = csv.reader(f)
for row in reader:
item['state'] = 'Florida'
item['county'] = county ##variable set from response.url
item['saleDate'] = row[0]
item['caseNumber'] = row[2]
..
yield item
except:
pass
f.close()
print ">>>>>>>>>>>F CLOSED"
os.remove(logfiles)
我需要Scrapy完全导入所有CSV值作为项目,然后再转到下一个请求。有没有办法实现这个目标?