Этот паук сделан с идеей сравнения списка ключевых слов из файла с текстом со страницы и извлечения строк / абзацев.
Учитывая следующий паук:
import scrapy
import sys
reload(sys)
sys.setdefaultencoding('utf8')
class StringGrab(scrapy.Spider):
name = "stringpage"
start_urls = [
'https://whatscookingamerica.net/Glossary/A.htm',
]
def parse(self, response):
in_file = tuple(open("dictionarA1.csv", "r"))
for word in in_file:
for para_text in response.xpath(u'//p/text()[contains(..,"{0}")]'.format(word)).extract():
yield {
'dictA': para_text,
}
custom_settings = {
"DOWNLOAD_DELAY": 1,
"CONCURRENT_REQUESTS_PER_DOMAIN": 10
}
Мой вопрос, как в названии, паук сканирует, показывает код 200
для каждой ссылки (если добавлено больше), но это не такне выдает никакого вывода в CSV-файл.
Edit:
Если я ввожу ключевое слово в поиске и извлечении, оно работает
'dictA0': word.xpath('//p/text()[contains(..,"a la")]').extract(),
'dictA1': word.xpath('//p/text()[contains(..,"a la Anglaise")]').extract(),
, таким образом, извлечение и записьв файле любой абзац, который содержит "а-ля" и "а-ля английски".