В основном, у сайта, который я хочу очистить, есть индексная страница, на которой много ссылок. Затем мне нужно go просмотреть каждую из ссылок, чтобы очистить содержимое. Я попробовал два разных метода. Один из них - начать со страницы индекса, затем очистить всю ссылку и сделать обратный вызов. Но это только отправить запрос по одному. Он настолько медленный, так как веб-сайт, который я собираюсь очистить, довольно большой.
class Get_links_on_index_page(scrapy.Spider):
name = 'GenerateLink'
start_urls = 'www.indexpage.com'
def parse(self, response):
for link in response.css('.vip::attr(href)').getall():
request = scrapy.Request(link,callback=self.Follow_all_the_link)
yield request
class Follow_all_the_link(scrapy.Spider):
def parse(self, response):
...........
yield item
Второй способ - сначала очистить все ссылки, а затем передать его новым паукам start_urls, но пока без разницы.
class Get_links_on_index_page(scrapy.Spider):
name = 'GenerateLink'
start_urls = 'www.indexpage.com'
def parse(self, response):
for link in response.css('.vip::attr(href)').getall():
All_link.append(str(link))
process.crawl(Follow_all_the_link)
class Follow_all_the_link(scrapy.Spider):
name = 'all_link'
start_urls = All_link
def parse(self, response):
...........
yield item
process = CrawlerProcess()
process.crawl(GenerateLink)
process.start()
Файл settings.py выглядит следующим образом:
CONCURRENT_REQUESTS = 32
DOWNLOAD_DELAY = 0.1
CONCURRENT_REQUESTS_PER_DOMAIN = 32
CONCURRENT_REQUESTS_PER_IP = 32
Как выполнить запрос одновременно?