Voglio ottenere tutti i link esterni da un determinato sito web usando Scrapy. Utilizzando il seguente codice il ragno striscia link esterni così:Scrapy, segui solo URL interni ma estrai tutti i link trovati
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
Che cosa mi manca? "Permessi_domini" non impedisce la scansione dei link esterni? Se imposto "allow_domains" per LinkExtractor, non estrae i collegamenti esterni. Giusto per chiarire: non voglio eseguire la scansione dei collegamenti interni ma estrarre i link esterni. Qualsiasi aiuto appriciato!
Se abilito l'OffsiteMiddleware i collegamenti non vengono scansionati ma anche non estratti. Almeno allora riesco a vedere "Richiesta offsite filtrata a" www.externaldomain "Sicuramente mi manca qualcosa di banale qui? – sboss
solo per capire: vuoi avere l'elenco di tutti i link esterni per un determinato sito web? – aberna
Sì che è corretto! – sboss