我有以下作業蜘蛛作為一個行程 - 所以我可以啟動蜘蛛:python xyz.py
import scrapy
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
class onlyLinks(scrapy.Spider):
name = 'onlyLinks'
allowed_domains = ['magnatiles.com']
start_urls = ['https://www.magnatiles.com/products/page/1/']
def parse(self, response):
tmpProd = response.xpath("//ul[@class='products']//ancestor::li")
for p in tmpProd:
yield {
"link": p.xpath("(./a)[1]/@href").get(),
"name": p.xpath(".//h2/text()").get(),
"sku": p.css("a.button::attr(data-product_sku)").get(),
"price": p.xpath("//span[@class='price']//ancestor::bdi/text()").get()
}
process = CrawlerProcess(settings={
"FEEDS": {
"items.json": {"format": "json"},
# "items.csv": {"format": "csv"},
# "items.xlsx": {"format": "xlsx"},
},
})
process.crawl(onlyLinks)
process.start()
但是我如何使用 settings.py 中的其他資訊/設定?例如。ROBOTSTXT_OBEY = False,AUTOTHROTTLE_ENABLED = True,AUTOTHROTTLE_START_DELAY = 5 等等。
我怎樣才能以這種方式將輸出輸出到 json - 所以輸出會被覆寫?(當我現在運行程式時,資料總是附加到現有的 items.json 檔案中)(當我運行帶有 scrapy runpider 的蜘蛛時,我會使用 -o 或 -O 來覆寫或不覆寫輸出檔案 - 但是如何我可以在這里做嗎?)
uj5u.com熱心網友回復:
您可以使用鍵值對表示dict格式如下:
process = CrawlerProcess ({
"FEEDS": {"items.json": {"format": "json", "overwrite": True}},
'ROBOTSTXT_OBEY':'False',
'USER_AGENT': 'Mozilla/5.0',
'AUTOTHROTTLE_ENABLED':'True',
'AUTOTHROTTLE_START_DELAY': '5'
})
process.crawl(onlyLinks)
process.start()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/383371.html
上一篇:如何從R中的網頁中獲取日期
下一篇:無法處理網頁抓取中的空<td>值
