python爬虫的输出

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.

我有一个使用scrapy框架的python web。我正在尝试将输出放入两个单独的文件中- 1) 网站到网站的数据(即网站1到网站2的链接) & 2) 与爬虫正在查找的关键字列表匹配的关键字 我无法让输出正常工作-我能够在不包含关键字组件的情况下获得(1)的输出,并且我可以看到webcrawler正在工作-cmd提示符中列出了网站和相应的关键字。但是,我无法将它们另存为单独的csv文件

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