[英]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.