может кто-нибудь помочь мне с xpath? я не знаю, почему я получаю неправильное издание.
Я получаю
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)
Span с атрибутом "htlgb" и значением 87 (вы написали 83) не существует. Проверено с FF, Chrome, Edge. Если вы хотите получить общее количество заголовков, используйте XPath:
//tr[@class][last()]//div/text()
Вывод: 87
В этом случае я бы, вероятно, использовал селектор 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/
Надеюсь, это поможет