BeautifulSoup: Селектор не извлекает нужные данные - Yahoo Scrape - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь извлечь текст из элемента, значение класса которого содержит compText.Проблема в том, что он извлекает все, кроме текста, который я хочу.

Селектор CSS правильно определяет элемент, когда я использую его в инструментах разработчика.

Я пытаюсь очистить текст, который появляется в Yahoo SERP, когда введенный запрос не дает результатов.

  1. Если мой запрос (включая цитаты) "klsf gl glkjgsdn lkgsdg" ничего не отображается, ожидайте дополнительный текст "Мы не нашли результаты, блабла", а селектор извлекает данные правильно
  2. Если мой запрос (включая цитаты) "на основе специальности. Блоки. Органосиликон. Ссылка".Yahoo добавит рекламу из-за ключевого слова "Organosilicone", которое вызывает поведение, описанное в первом абзаце.

Вот код:

import requests
from bs4 import BeautifulSoup
url = "http://search.yahoo.com/search?p="
query = '"based specialty chemicals. Blocks. Organosilicone.  Reference"'
r = requests.get(url + query) 
soup = BeautifulSoup(r.text, "html.parser")

for EachPart in soup.select('div[class*="compText"]'):
    print (EachPart.text)

Что может быть не так?

Thx,

РЕДАКТИРОВАТЬ: Извлеченный текст, кажется, определение слова "органосиликон", который я могу найти в поисковой выдаче.

EDIT2: Это фрагменттекста, который я получаю: «Продукты, созданные и произведенные компаниями-участницами« Specialty Chemicals », многие из которых являются малыми и средними предприятиями, основаны на оригинальных и постоянных инновациях. Они способствуют низкоуглеродистой, ресурсоэффективной и основанной на знаниях экономикебудущего."и снимок экрана с поисковой выдачей, когда я использую свой браузер enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...