Я использую beautifulSoup для извлечения данных с сайта. Текст с этого сайта изменяется каждый раз, когда вы перезагружаете свою страницу, поэтому в основном я хочу уделить основное внимание имени класса как переменной Static, поскольку текст является динамическим.Python 3 - Получить текст из тега в beautifulSoup
import requests
from bs4 import BeautifulSoup
url = 'xxxxxxxxxxx'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
class2 = soup.find_all(True, class_="template_title")
print (class2)
, который печатает
<td align="left" class="template_title" height="50" valign="bottom" width="535"><div style="padding-bottom:9px;">4</div></td>
Когда перезагружается страница, я все равно буду иметь фокус на площади, но я не знаю, как печатать только текст (который в данном случае является: 4)
Как только это выясняется, у меня возникает другой вопрос: если класс содержит несколько тегов, есть ли способ получить больше статических данных, чтобы убедиться, что он только печатает текст, который я искал, а не больше? (У меня есть класс, но я мог использовать высота = «50» VALIGN = «дно» ширина = «535», а?)
Благодарим за помощь! Но, скажем, я распечатываю первый раз исходный код, затем я решаю, какой тег я хочу сосредоточить (тег в моем вопросе). Я делаю ввод, который запрашивает имя класса, но если в теге класса есть более одного тега, и я не хочу менять свой код, чтобы добавить параметры. Есть ли способ для меня просто скопировать код, который я хочу сохранить (например: class = "template_title" height = "50" valign = "bottom" width = "535"), и он поместит параметры на место для ответ моего второго вопроса? Я знаю, что мой английский не на высоте, но я делаю все возможное. Еще раз спасибо за ответ: –
@bob. Вместо указания в качестве аргументов ключевого слова вы также можете передавать атрибуты в виде словаря: 'soup.find_all (True, dict (class _ = 'template_title', height = '50 ', valign =' bottom ', width =' 535 ')) ', если я понял ваш вопрос. – falsetru
Тогда как я могу сделать это здесь: 'string_keep = input (" params to keep ?: ")' 'class2 = soup.find_all (True, dict (string_keep))' 'для x в классе2: print (x .string) ', если мой вход:' class _ = "template_title", height = "50", valign = "bottom", width = "535" 'Я понимаю, что это похоже на то, что мой ввод - это строка, а не dict, но как я могу это исправить? Значение пользователя, выполняющего скрипт, может решить, какой параметр сохранить, если это имеет смысл –