ですでに訪問したURLを無視これが私のcustom_filters.pyファイルですそれは何度も1つのURLを表示します。これは間違っていますか?scrapy
Q
scrapy
5
A
答えて
2
から:http://doc.scrapy.org/en/latest/topics/item-pipeline.html#duplicates-filter
from scrapy.exceptions import DropItem
class DuplicatesPipeline(object):
def __init__(self):
self.ids_seen = set()
def process_item(self, item, spider):
if item['id'] in self.ids_seen:
raise DropItem("Duplicate item found: %s" % item)
else:
self.ids_seen.add(item['id'])
return item
その後、あなたのsettings.py
追加で:
ITEM_PIPELINES = {
'your_bot_name.pipelines.DuplicatesPipeline': 100
}
EDIT:重複したURLが使用のために
確認するには:
from scrapy.exceptions import DropItem
class DuplicatesPipeline(object):
def __init__(self):
self.urls_seen = set()
def process_item(self, item, spider):
if item['url'] in self.urls_seen:
raise DropItem("Duplicate item found: %s" % item)
else:
self.urls_seen.add(item['url'])
return item
あなたの商品にはurl = Field()
が必要です。このような何か(items.py):
from scrapy.item import Item, Field
class PageItem(Item):
url = Field()
scraped_field_a = Field()
scraped_field_b = Field()
+2
に何が起こっているのか、重複レコードのために、こののみチェックを理解するために、あなたのDupeFilter 'request_seen'メソッドにログの行を追加することができます。これは、あなたのクモの中で重複したURLのフェッチをチェックしません。 – mattes
関連する問題
- 1. Scrapy、
- 2. scrapy
- 3. Scrapy -
- 4. - Scrapy
- 5. Scrapy Torproject
- 6. Scrapy - href =#
- 7. Scrapy HtmlXPathSelector
- 8. FormRequest Scrapy
- 9. Scrapy FormRequest.from_response error
- 10. Captchas in Scrapy
- 11. python scrapy ignoring start_url
- 12. Scrapy spider close prematurely
- 13. Scrapy Xpath output empty
- 14. Scrapy + Selenium issue
あなたは結果ファイル(つまり、CSVファイル)が作成されたときに –