#python #scrapy
#python #scrapy
Вопрос:
я очищаю веб-сайт и хочу очистить только тот контент, который содержит определенные ключевые слова.
например, ключевое слово = [«собака», «обезьяна», «кошка», «лев»] пока я просматриваю веб-сайт, если в содержимом есть какое-либо ключевое слово, я очищаю.
итак, что я сделал, так это:
descrs = response.xpath('string(//*[@class="...st-content post__content--new-editor"])').extract()
descr = ""
parseDes = descrs.split(" ")
if descrs in keyword:
for c in descrs:
c = re.sub(r"[u00a0tn] ", "", c)
c = re.sub("ss ", " ", c)
c = re.sub(r"[u2019]", ''', c)
descr = descr c
curr_post["url"] = response.url
curr_post["title"] = title
curr_post["id"] = id
curr_post["date"] = date_time
curr_post["Issue description"] = descr
однако это дает мне дублированный контент.
как мне переместить цикл к следующему, как только он найдет какое-либо из ключевых слов??
Спасибо!!
Комментарии:
1. чтобы избавиться от дубликатов, самый простой способ — использовать set
Ответ №1:
однако это дает мне дублированный контент.
Сложно интерпретировать ваш вопрос, потому что
- idk что
descrs
такое - idk, как вы ожидаете
descrs in keyword
работать, почему бы и нетany(k in descrs for k in keyword)
илиkeyword in descrs
, по крайней мере, - что вы получили (переменная / печать / комментарий / любой признак того, что не так)
- чего вы ожидали (переменная / печать / комментарий / что угодно)
Похоже, что вы получаете одну и ту же страницу несколько раз при циклическом переборе ключевых слов, но вы предоставили только кучу кода без каких-либо признаков этого цикла.
как мне переместить цикл к следующему, как только он найдет какое-либо из ключевых слов??
Единственное, о чем я могу догадаться, это то, что continue
ключевое слово похоже на то, что вы ищете.