我想知道如何阻止它多次記錄相同的URL?如何阻止我的抓取工具記錄重複項?
這是我到目前爲止的代碼:
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.linkextractors.lxmlhtml import LxmlLinkExtractor
from scrapy.item import Item, Field
class MyItem(Item):
url=Field()
class someSpider(CrawlSpider):
name = "My script"
domain=raw_input("Enter the domain:\n")
allowed_domains = [domain]
starting_url=raw_input("Enter the starting url with protocol:\n")
start_urls = [starting_url]
f=open("items.txt","w")
rules = (Rule(LxmlLinkExtractor(allow_domains=(domain)), callback='parse_obj', follow=True),)
def parse_obj(self,response):
for link in LxmlLinkExtractor(allow_domains=(self.domain)).extract_links(response):
item = MyItem()
item['url'] = link.url
self.f.write(item['url']+"\n")
現在會做重複成千上萬的單個環節,例如,一個vBulletin論壇,約25萬的職位。
編輯: 請注意,cralwer將獲得數以百萬計的鏈接。 因此,我需要代碼才能真正快速地檢查。
聽起來像你正在構建一個醜陋的機器人。抓取電子郵件地址可能? – Dionys
沒有。這是我自己的網站。我需要獲取論壇網址,因此我上傳到存檔網站。 – mark
你有沒有考慮過把你的URL保存在'set()'中? – boardrider