Ich möchte alle externen Links von einer bestimmten Website mit Scrapy erhalten. Mit dem folgenden Code crawlt der Spider auch externe Links:Scrapy, folgen Sie nur internen URLs, aber extrahieren Sie alle gefundenen Links
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor
from myproject.items import someItem
class someSpider(CrawlSpider):
name = 'crawltest'
allowed_domains = ['someurl.com']
start_urls = ['http://www.someurl.com/']
rules = (Rule (LinkExtractor(), callback="parse_obj", follow=True),
)
def parse_obj(self,response):
item = someItem()
item['url'] = response.url
return item
Was fehlt mir? Verhindert "allowed_domains" das Crawlen der externen Links? Wenn ich "allow_domains" für LinkExtractor einstelle, werden die externen Links nicht extrahiert. Nur um zu verdeutlichen: Ich möchte interne Links crawlen, aber externe Links extrahieren. Jede Hilfe geschätzt!
Wenn ich die OffsiteMiddleware die Links ermöglichen nicht gecrawlt werden, sondern auch nicht extrahiert. Wenigstens dann kann ich sehen "Gefiltert Offsite-Anfrage zu 'www.externedomain'. Sicherlich vermisse ich hier etwas Triviales? – sboss
nur zu verstehen: Möchten Sie die Liste aller externen Links für eine bestimmte Website haben? – aberna
Ja, dass ist korrekt! – sboss