簡體   English   中英

無法讀取文件,然后將結果寫入scrapy(python)

[英]Can't read in a file and then write results to a file with scrapy (python)

我正在抓取某些內容,但遇到了問題。 我發現可以使用以下命令行將我的抓取結果保存到csv文件中:

    scrapy crawl spider --set FEED_URI=output.csv --set FEED_FORMAT=csv

我也知道,我可以使用以下命令行輸入來讀取起始網址以從文本文件中抓取:

    scrapy crawl dmoz -a filename=text.txt

我在蜘蛛中的代碼是:

class DmozSpider(BaseSpider):
name = "dmoz"
allowed_domains = ["ebay.com"]

def __init__(self, filename=None):
    if filename:
        with open(filename, 'r') as f:
            self.start_urls = f.readlines()
            print self.start_urls

當我嘗試同時執行這兩項操作時,就會出現我的問題。 我希望我的蜘蛛抓取文本文件中指定的url,然后將輸出寫入csv文件。 以下命令行由於某種原因而無法正常工作,已讀入URL(我知道這是事實),但未寫入csv文件:

   scrapy crawl dmoz -a filename=text.txt --set FEED_URI=output.csv --set FEED_FORMAT=csv

如果有人看到我在做什么錯或有解決方法,將不勝感激。 謝謝!

如果您有動態啟動請求,則應使用start_requests()產生請求,而不是更改start_urls
這是您應該如何做:

class DmozSpider(BaseSpider):
name = "dmoz"
allowed_domains = ["ebay.com"]

def start_requests(self):
    if self.filename:
        with open(self.filename, 'r') as f:
            for url in f.readlines():
                yield scrapy.Request(url)

要將輸出寫入csv文件,只需使用-o參數定義文件(如果使用有效的擴展名,則將自動選擇Feed格式):

scrapy crawl dmoz -a filename=text.txt -o output.csv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM