как можно исправить неправильный вывод формы xpath - PullRequest
0 голосов
/ 15 апреля 2020

может кто-нибудь помочь мне с xpath? я не знаю, почему я получаю неправильное издание.

enter image description here

Я получаю

Titels: 3. April 2020

вместо

83

-

import requests
from lxml import etree

r = requests.get("https://play.google.com/store/music/album?id=Bmandxahj7v2wh2vd2ve7uuzqna&hl=de")

dom = etree.HTML(r.content)

titels_text= dom.xpath('//*[@id="fcxH9b"]/div[4]/c-wiz/div/div[2]/div/div[1]/div/c-wiz[4]/div[1]/div[2]/div[2]/span/text()')[0]

print("Titels:", titels_text)

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Span с атрибутом "htlgb" и значением 87 (вы написали 83) не существует. Проверено с FF, Chrome, Edge. Если вы хотите получить общее количество заголовков, используйте XPath:

//tr[@class][last()]//div/text()

Вывод: 87

0 голосов
/ 15 апреля 2020

В этом случае я бы, вероятно, использовал селектор CSS.

from lxml.cssselect import CSSSelector
sel = CSSSelector('span.htlgb')

Если вы хотите понять Xpath, вы можете проверить эту документацию, которая мне очень помогла https://www.guru99.com/xpath-selenium.html#2

https://www.w3schools.com/xml/xpath_syntax.asp

Но если вы хотите сделать действительно хороший скребок, я рекомендую вам проверить эту структуру https://scrapy.org/ (Это самый продвинутый )

https://www.selenium.dev/

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...