Не могу извлечь текст из элемента с помощью BS4 - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь извлечь имя на этой веб-странице: https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20%28Field-Tested%29

Элемент, из которого я пытаюсь получить его, -

<h1 class="hover_item_name" id="largeiteminfo_item_name" style="color: 
rgb(210, 210, 210);">AK-47 | Redline</h1>

Я могу найтиИдентифицируйте «largeiteminfo_item_name», используя селен, и получайте текст таким образом, но когда я дублирую его с помощью bs4, я не могу найти текст.

Я попытался найти класс «item_desc_description», но там также не было найдено ни одного текста,Что я делаю не так?

a = soup.find("h1", {"id": "largeiteminfo_item_name"})
a.get_text()

a = soup.find('div', {'class': 'item_desc_description'})
a.get_text()

Я ожидал "AK-47 | Redline", но получил "" с первой попытки и "\ n \ n \ n \ n \ n \ n \ n \ n\ n \ n \ n \ n \ n \ n \ n \ n 'для второй попытки.

1 Ответ

0 голосов
/ 22 декабря 2018

Данные, которые вы пытаетесь извлечь, отсутствуют на HTML-странице, я думаю, что они могут быть сгенерированы отдельно с помощью JavaScript (только предположения).

enter image description here

Однако мне удалось найти информацию в div "market_listing_nav".

from bs4 import BeautifulSoup as bs4
import requests

lnk = "https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20%28Field-Tested%29"
res = requests.get(lnk)

soup = bs4(res.text, features="html.parser")
elem = soup.find("div", {"class" : "market_listing_nav"})

print(elem.get_text())

Это выведет следующее

Counter-Strike: Global Offensive
                    >
                                        AK-47 | Redline (Field-Tested)

Посмотрите на источник веб-страницы для тегас лучшим форматированием или просто очистить сгенерированный моим кодом.

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