2017-02-09 2 views
1

Я пытаюсь ввести файл в scrapy для обработки. Но я не знаю, почему у меня возникает проблема с вводом в формат файла. Вот то, что я пробовал:Ввод файла для вопросов, связанных с очисткой

with open("url.txt","r") as f: 

    DOMAIN = [u.strip() for u in f.readlines()] 
    print DOMAIN 
    URL = 'http://%s' % DOMAIN 

class MySpider(scrapy.Spider): 
    name = "emailextractor" 
    allowed_domains = [DOMAIN] 
    start_urls = [ 
     URL 
    ] 

Входной файл в этом формате:

emaxple.com 
example.net 
example.org.... etc 

Как внести вклад в Scrapy в формате, который я использую. Я пытаюсь добавить http:// ко всем URL, которые я буду кормить. Даже файл очень большой в Великобритании. Итак, что мне лучше делать? Пожалуйста, помогите мне.
Этот вопрос не работает для меня: Pass input file to scrapy containing a list of domains to be scraped

ответ

0

Если вы хотите, чтобы генерировать запросы на основе URL-адресов из файла (или что-то еще, что вы не можете установить непосредственно в start_urls списке), вы должны переопределить scrapy.Spiderstart_requests метод в вашем собственном пауке.

В этом методе вы должны генерировать запросы для URL-адресов, вы считываемых из входного файла:

class MySpider(scrapy.Spider): 
    name = "emailextractor" 

    def start_requests(self): 
     with open('urls.txt') as urls_file: 
      for url in urls_file: 
       yield scrapy.Request(url.strip(), callback=self.parse) 

    def parse(self, response): 
     # parse the pages that your spider downloaded and extract the data 
Смежные вопросы