Ограничены ли определения scrapy (self, response) или требуют специальной функции для анализа нескольких URL в цикле? - PullRequest
0 голосов
/ 10 июля 2019

Я анализирую два списка URL-адресов, причем последние заполняются с первого.Я могу получить все необходимые URL-адреса, но у меня возникают проблемы при извлечении данных из последнего списка URL-адресов.Я могу получить только данные одного URL

. Я пытался использовать scrapy.Request, response.follow, оператор While, но получаю ответ только по одному URL.Я новичок в scrapy / python и не знаю, как решить эту проблему.

import scrapy



class DBSpider(scrapy.Spider):
 name = "Scrape"
 allowed_domains = ["192.168.3.137"]
 start_urls = [
 'http://192.168.3.137/api/?controller_id=' + str(x)
 for x in range(0,8)
 ]

 def parse(self, response):
  for sites in response.xpath('//* 
   [@id="siteslist"]//li/a/@href').extract(): 
   yield response.follow(sites, self.parse_sites)

 def parse_sites(self, response):
  for device_pages in response.xpath('//* 
   [@id="list_devices"]/a/@href').extract():
   yield scrapy.Request(response.urljoin(device_pages), 
   self.parse_macs)

 def parse_macs(self, response):
  print response.url #only gets one response url

parse_mac вывести только один URL-адрес ответа.должно быть эквивалентно количеству URL в цикле devices_pages в parse_sites def

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...