Итак, я пытаюсь проанализировать страницу HTML для извлечения двух фрагментов данных из неупорядоченного списка.
На странице есть тысячи <li>
элементов, имеющих следующую структуру. .
<li>
<a href="/lesson/check/119" target="_blank">
Check lesson <b>#119</b> "structure-of-the-blood-vessels"
</a>
</li>
Это код Python, который я получил до сих пор ...
import requests
from lxml import html
auth = {
'user_login_form[_username]' : 'USERNAME',
'user_login_form[_plainPassword]' : 'PASSWORD',
'user_login_form[csrf_token]' : 'TOKEN'
}
login_url = 'https://example.com/login'
page_url = 'https://example.com/lesson/list'
session = requests.Session()
p = session.post(
login_url,
data=auth
)
print('Connecting to site ...',p.ok)
r = session.get(
page_url
)
print('Connecting to page ...',r.ok)
# Parsing text of the webpage into a DOM tree
tree = html.fromstring(r.text)
collection = tree.xpath('//li/a/descendant::text()')
for element in collection:
print(element)
... и вывод, который я получаю из этого ...
Check lesson
#106
"functions-of-the-skeleton-4"
Check lesson
#107
"classification-of-bones-1"
... et c.
Вывод, который я хочу получить из скрипта, будет ...
106,functions-of-the-skeleton-4
Затем я хочу следовать URL-адресу каждого <li><a>
тег для получения одного фрагмента информации с этой страницы ...
<h1 class="head-h1" style="padding: 1%;">Lesson #106 - Functions of the Skeleton</h1>
... поэтому последняя строка данных, сгенерированных сценарием, будет ...
106,functions-of-the-skeleton-4,Functions of the Skeleton
По сути, я пытаюсь убедиться, что «слаг» для урока на первой странице совпадает с названием урока на дочерней странице.
Пожалуйста, не могли бы вы помочь с XPATH / Python