Python scrapy и Regex проверяют строку из файла и очищают - PullRequest
0 голосов
/ 22 мая 2018

При создании скребка я столкнулся с ситуацией, когда у меня есть куча ключевых слов и их слишком много для жесткого кода.Поэтому я хотел реализовать регулярное выражение, которое читает из файла «словаря», оно содержит ключевые слова, и когда сканер / скребок соответствует одному из ключевых слов на определенном веб-сайте, он очищает весь абзац, содержащий ключевые слова.

Модель кода с одним абзацем выглядит следующим образом:

for Keyword in response.xpath('//*'):
        yield {
            'dictA':  Keyword.xpath('//p/text()[contains(..,"Specific Keyword/s")]').extract(),             
        }

Это то, что дает мне весь абзац, содержащийся в этом "Определенном ключевом слове".Но у меня есть, скажем, около 100 слов, которые я не хочу делать:

dictA1
.
.
.
dictA100

Это неэффективно.Как я мог пойти за этим.Как всегда подсказки и указания помогают и приветствуются.

1 Ответ

0 голосов
/ 22 мая 2018

Если вы хотите обработать список ключевых слов и проверить каждое из них на соответствие некоторому выражению XPath, вы можете использовать это: для ключевого слова в response.xpath ('// *'):

for specific_keyword in keyword_list:
    yield {
        'dict':  Keyword.xpath( '//p/text()[contains(.,"{0}")]'.format(specific_keyword) ).extract(),             
    }

ОБНОВЛЕНИЕ После некоторых разъяснений от вас:

for word in keyword_list:
    for para_text in response.xpath('//p/text()[contains(..,"{0}")]'.format(word)).extract():        
        yield {
            'dict':  para_text,             
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...