Как выполнять Python Web Crawl (без тегов, без имени div, без имени класса) - PullRequest
0 голосов
/ 28 мая 2019

Я знаю, что нужен тег имени для сканирования в Интернете. (напр .: class = 'abcd') Но теперь у меня нет этого имени.

введите описание изображения здесь

Я хочу извлечь 1 in (span) 1 (span) из значения изображения. как к этому?

всегда благодарим пользователей stackoverflow.

1 Ответ

1 голос
/ 28 мая 2019

С помощью bs4 4.7.1 вы можете использовать: имеет псевдоселектор, чтобы указать диапазон с соседним диапазоном, имеющим класс .point-scale

soup.select_one('span:has(~ .point-scale)').text

Это общий брат. Вы также можете быть более конкретным с соседним братом

soup.select_one('span:has(+ .point-scale)').text

Используйте select и составьте список для нескольких совпадений:

ratings = [item.text for item in soup.select('span:has(~ .point-scale)')]

Комбинаторы (цитаты из страниц разработчиков Mozilla)

Комбинированный соседний брат и сестра:

Соседний братский комбинатор (+) разделяет два селектора и соответствует второму элементу, только если он непосредственно следует за первым element, и оба являются потомками одного и того же родительского элемента.

Общий родственный комбинатор:

Общий братский комбинатор (~) разделяет два селектора и совпадает второй элемент, только если он следует за первым элементом (хотя и не обязательно сразу), и оба являются детьми одного и того же родителя элемент.

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