Я новичок в Scrapy и хочу попробовать следующее: извлечь некоторые значения с веб-страницы, сохранить их в переменной и использовать в моем основном скрипте. Поэтому я последовал их руководству и изменил код для своих целей:
import scrapy
from scrapy.crawler import CrawlerProcess
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = [
'http://quotes.toscrape.com/page/1/'
]
custom_settings = {
'LOG_ENABLED': 'False',
}
def parse(self, response):
global title # This would work, but there should be a better way
title = response.css('title::text').extract_first()
process = CrawlerProcess({
'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
})
process.crawl(QuotesSpider)
process.start() # the script will block here until the crawling is finished
print(title) # Verify if it works and do some other actions later on...
Это будет работать до сих пор, но я почти уверен, что это не очень хороший стиль или даже имеет некоторые плохие побочные эффекты, если я определяю переменную title как глобальную. Если я пропущу эту строку, то, конечно, получу ошибку «неопределенная переменная»:/ Поэтому я ищу способ вернуть переменную и использовать ее в своем основном скрипте.
Я читал о конвейере элементов, но не смог заставить его работать.
Любая помощь/идеи очень ценятся :) Заранее спасибо!
global
- так будет проще. Трубопровод вам не поможет. - person furas   schedule 27.12.2017