python爬虫的输出
我有一个使用scrapy框架的python web。我正在尝试将输出放入两个单独的文件中- 1) 网站到网站的数据(即网站1到网站2的链接) & 2) 与爬虫正在查找的关键字列表匹配的关键字 我无法让输出正常工作-我能够在不包含关键字组件的情况下获得(1)的输出,并且我可以看到webcrawler正在工作-cmd提示符中列出了网站和相应的关键字。但是,我无法将它们另存为单独的csv文件python爬虫的输出,python,csv,scrapy,web-crawler,output,Python,Csv,Scrapy,Web Crawler,Output,我有一个使用scrapy框架的python web。我正在尝试将输出放入两个单独的文件中- 1) 网站到网站的数据(即网站1到网站2的链接) & 2) 与爬虫正在查找的关键字列表匹配的关键字 我无法让输出正常工作-我能够在不包含关键字组件的情况下获得(1)的输出,并且我可以看到webcrawler正在工作-cmd提示符中列出了网站和相应的关键字。但是,我无法将它们另存为单独的csv文件 def check_buzzwords(self, response): self.
def check_buzzwords(self, response):
self.__class__.crawl_count += 1
crawl_count = self.__class__.crawl_count
wordlist = [
"Keyword1",
"Keyword2"
]
url = response.url
contenttype = response.headers.get("content-type", "").decode('utf-8').lower()
data = response.body.decode('utf-8')
for word in wordlist:
substrings = find_all_substrings(data, word)
for pos in substrings:
ok = False
if not ok:
self.__class__.words_found += 1
print(word + ";" + url + ";")
return Item()
要运行爬行器-这是我正在使用的命令
scrapy crawl examplespider -o examplesemanticlevel1.csv
这个模型是否可以有两个单独的输出文件?如果没有,你知道如何把我需要的2个文件合并成1个吗
The exact output that I need is as follows:
CSV File 1:
starting website | Target website
website1 | website2
Website1 | Website2
Website2 | website3
CSV File 2:
Keyword | Webpage
Keyword1 | Webpage1
Keyword2 | Webpage1
Keyword2 | Webpage2
Keyword3 | Webpage3
我在网上找到了一些代码,但我不知道如何合并它。这样的东西有用吗
def spider_closed(self):
with open("outputfile.csv","w", newline="") as f:
writer = csv.DictWriter(f,['Name','Year'])
writer.writeheader()
for data in self.itemlist:
writer.writerow(data)
我会在spider中手动添加一些代码,以将您想要的内容写入每个csv,因为命令行选项非常有限
这相当简单,如果您有问题请告诉我您可以编写任意多的CSV文件,这应该没有问题。您是否有一个特定的URL或一个您想要的确切输出的示例,以便提供的任何解决方案都能完全满足您的需要?另外,您将“ok”设置为False,然后不必要地检查其真实性。@Dodge谢谢您的建议!我继续向我的问题中添加了示例,以给出我需要的输出的确切格式。至于“ok”一词,我可否删除“if not ok”一词以纠正这一点?谢谢是的,与该条件相关的代码目前没有用处(我不认为),因此
ok
的赋值和if
语句都可能被删除。很好,谢谢你的澄清-我会在没有这些的情况下尝试一下,看看结果是否保持不变。你应该可以这样做,我刚刚用一部分代码编辑了主帖-这样行吗?我写的代码行不通!有什么建议吗?让我看看。有错误吗?在回家之前,我不能自己测试它,但我会快速浏览一下没有错误-但它也没有生成输出文件!不幸的是,这显然不起作用。我仍在尝试编写两个单独的csv文件。有什么想法吗?
def linkage_output_file (self, response):
df = pandas.read_csv('websitesemanticlevel2.csv',
url = 'URL',
word = 'Keyword',
header=0,
names=['url','keyword'])
df.to_csv('websitesemanticlevel2.csv')