Я в скрипте создал скрипт, чтобы проанализировать author name
различных постов со своей целевой страницы и затем передать его методу parse_page
, используя ключевое слово meta
, чтобы напечатать post content
вместе сauthor name
одновременно.
Я использовал download_slot в мета-ключевом слове, которое якобы маскирует выполнение скрипта быстрее.Хотя нет необходимости соблюдать логику, которую я пытался применить здесь, я хотел бы придерживаться ее только для того, чтобы понять, как download_slot работает в любом сценарии и почему.Я много искал, чтобы узнать больше о download_slot , но в итоге я нашел несколько ссылок, таких как this .
Пример использования download_slot
(Хотя я не совсем уверен в этом):
from scrapy.crawler import CrawlerProcess
from scrapy import Request
import scrapy
class ConventionSpider(scrapy.Spider):
name = 'stackoverflow'
start_urls = ['https://stackoverflow.com/questions/tagged/web-scraping']
def parse(self,response):
for link in response.css('.summary'):
name = link.css('.user-details a::text').extract_first()
url = link.css('.question-hyperlink::attr(href)').extract_first()
nurl = response.urljoin(url)
yield Request(nurl,callback=self.parse_page,meta={'item':name,"download_slot":name})
def parse_page(self,response):
elem = response.meta.get("item")
post = ' '.join([item for item in response.css("#question .post-text p::text").extract()])
yield {'Name':elem,'Main_Content':post}
if __name__ == "__main__":
process = CrawlerProcess({
'USER_AGENT': 'Mozilla/5.0',
})
process.crawl(ConventionSpider)
process.start()
Вышеуказанный скрипт работает без нареканий.
Мой вопрос: как download_slot
работаетвнутри скрапа?