鱼C论坛

 找回密码
 立即注册
查看: 994|回复: 3

[已解决]为何获取不到需要的标签

[复制链接]
发表于 2022-5-7 14:59:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位老师我的代码如下
import requests
from lxml import etree
url = 'http://www.baidu.com'
headers = {
            'Host': 'tieba.baidu.com',
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36'}
response  = requests.get(url,headers=headers)
ret = response.content.decode()
html = etree.HTML(ret)
li_list = html.xpath('//a[@id="aging-total-page"]')
print(li_list)
为何我获取不到a标签。
这个标签就在百度的首页下
<a id="aging-total-page" role="pagedescription" aria-label="欢迎进入 百度一下,你就知道,盲人用户进入读屏幕模式请按快捷键Ctrl加Alt加R;阅读详细操作说明请按快捷键Ctrl加Alt加问号键。" tabindex="0" href="javascript:void(0)"></a>
最佳答案
2022-5-7 15:14:27

你试着打印 ret 的文本内容,会发现没有属性值为 aging-total-page 的标签

然后我们去看下页面源码,打开开发者模式,看到确实有 aging-total-page 标签

接下来我们看着这个页面标签同时按下刷新,就会发现这个标签是后面加载过程冒出来的,说明可能是 js 加载渲染上,所以你在代码中获取不到此标签

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-7 15:14:27 | 显示全部楼层    本楼为最佳答案   

你试着打印 ret 的文本内容,会发现没有属性值为 aging-total-page 的标签

然后我们去看下页面源码,打开开发者模式,看到确实有 aging-total-page 标签

接下来我们看着这个页面标签同时按下刷新,就会发现这个标签是后面加载过程冒出来的,说明可能是 js 加载渲染上,所以你在代码中获取不到此标签

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-7 15:22:22 | 显示全部楼层
Twilight6 发表于 2022-5-7 15:14
你试着打印 ret 的文本内容,会发现没有属性值为 aging-total-page 的标签

然后我们去看下页面源码, ...

感谢老师的解答我去试试看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-7 15:24:36 | 显示全部楼层
浏览器看到的网页码源是经过css渲染和javascript处理之后得到的,而requests不靠其他库不会渲染和也不会执行javascript,因此requests get拿到的和浏览器的代码不一样是正常的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 10:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表