Python и XPath

Soprano

Комбинатор
Регистрация
11 Апр 2009
Сообщения
652
Реакции
978
В C# при получении данных с сайта через XPath делаю так
string sign = "//div[contains(@class, ''sign1")]";
при том что
class=sign1_Uyfgrtdf
в Python это выглядит так
sign = soup.find_all('div', class_='sign1_Uyfgrtdf')

Можно ли и как сделать в Python, чтобы брать часть значения, то есть какой аналог contains ?
 
В Python можно использовать библиотеку BeautifulSoup совместно с библиотекой lxml для работы с XPath. В данном случае можно использовать следующий код:

Python:
import requests
from bs4 import BeautifulSoup
from lxml import html
url = "https://example.com"  # Заменить на нужный URL
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
tree = html.fromstring(str(soup))
sign_xpath = "//div[contains(@class, 'sign1')]"
sign_elements = tree.xpath(sign_xpath)
for sign in sign_elements:
    print(sign.text_content())

Здесь мы используем tree.xpath(sign_xpath) для поиска всех элементов, соответствующих заданному XPath-выражению, которое содержит contains(@class, 'sign1') для поиска частичного совпадения с атрибутом class.
 
Назад
Сверху