为了账号安全,请及时绑定邮箱和手机立即绑定

Lxml xpath 返回一个空数组

Lxml xpath 返回一个空数组

不负相思意 2022-08-02 17:18:06
好吧,伙计们,我正在刮:https://twitter.com/iForex_com/status/1019547735614255104如果有人能帮助我,我将不胜感激import requestsfrom 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 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

尝试使用这个XPath,它应该工作:

(//img[@class='css-9pa8cd'])[2]/@src

如果它不起作用,请尝试使用此XPath,因为一旦您获得html,代码就会更改。

//img[@data-aria-label-part='']/@src

硒不是必需的。


查看完整回答
反对 回复 2022-08-02
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

谢谢大家的帮助。我不得不为此使用硒,否则请求无法正常工作,仍然在xpath思想中选择数字2 img时遇到一些麻烦。im从阵列中手动选择,仍然有效...


完整的工作代码


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()


查看完整回答
反对 回复 2022-08-02
  • 2 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信