#python #html #xpath #python-requests #lxml
#python #HTML #xpath #python-запросы #lxml
Вопрос:
Я создаю программу на Python, используя lxml и запросы для очистки текста с веб-сайта. Однако, когда я перехожу к нужному узлу, мой код выдает метку элемента вместо текста, расположенного на этом узле.
# import packages
from lxml import html
import requests
# initialize program with URL
ficUrl = 'https://www.fanfiction.net/s/10847788/'
# pull metadata
page = requests.get(ficUrl)
tree = html.fromstring(page.content)
title = tree.xpath('//*[@id="profile_top"]/b')
print(title)
Когда я просматриваю страницу, на этом узле должен быть расположен текст «Goldstein». Однако моя программа печатает [<Element b at 0x11171e548>]
. Что я могу сделать, чтобы это исправить?
Комментарии:
1.
title[0].text
???
Ответ №1:
Понял это!
Мне нужно было добавить /text()
тег в конец xpath .
Ответ №2:
Вы могли бы использовать beautifulsoup
from bs4 import BeautifulSoup as bs
import requests
r = requests.get('https://www.fanfiction.net/s/10847788/')
soup = bs(r.content, 'lxml')
data = soup.select_one('#profile_top .xcontrast_txt').text
print(data)