Ну, ребята, я соскребаю: https://twitter.com/iForex_com/status/1019547735614255104
Буду признателен, если кто-то может мне помочь
import requests from lxml import html finalurl = f"https://www.twitter.com/user/status/{id}" response = requests.get(finalurl,allow_redirects=True) tree = html.fromstring(response.content) print("getting photolink") postPhotoLink = tree.xpath('//*[@id="react-root"]/div/div/div/main/div/div/div/div[1]/div/div[2]/div/section/div/div/div/div[1]/div/article/div/div[4]/div/div/div/a/div/div[2]/div/img/@src') print(postPhotoLink)
Результат:
получаю фотолинк []
спасибо всем за помощь. Я должен был использовать селен для этого, иначе запрос не работал должным образом, все еще возникали проблемы с выбором только 2-го числа в мысли xpath. Я выбираю вручную из массива, все еще работает ...
Полный рабочий код
import requests from lxml import html from selenium import webdriver import time finalurl = "https://twitter.com/iForex_com/status/1019547735614255104" browser = webdriver.Safari() browser.get(finalurl) time.sleep(1) tree = html.fromstring(browser.page_source) print("getting photolink") postPhotoLink = tree.xpath('//img[@class="css-9pa8cd"]/@src') print(postPhotoLink[1]) browser.close()
Попробуйте с этим XPath, он должен работать:
(//img[@class='css-9pa8cd'])[2]/@src
Если он не работает, попробуйте с этим XPath, так как код меняется, как только вы получаете html.
//img[@data-aria-label-part='']/@src
Селен не требуется.