HTML-очистка с использованием запросов и lxml производитвместо текста, расположенного в этом узле - PullRequest
0 голосов
/ 21 апреля 2019

Я создаю программу на 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)

Когда я осматриваю страницу, в этом узле должен находиться текст «Гольдштейн». Тем не менее, моя программа печатает [<Element b at 0x11171e548>]. Что я могу сделать, чтобы это исправить?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

Вы могли бы использовать 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)
0 голосов
/ 21 апреля 2019

Разобрался!

Мне нужно было добавить тег /text() в конец xpath.

...