|
问题分析:
观察代码和HTML结构,发现两个核心问题:
1. 选择器 .item-0.active 需要同时匹配 item-0 和 active 类,但示例HTML中所有 <li> 都没有 active 类
2. 尝试获取的 href 属性不存在于 <li> 元素上,这是 <a> 标签的属性
解决方案:
- 修改选择器匹配实际存在的元素:
- python
- # 匹配最后一个<li>(PyQuery索引从0开始)
- a = doc('.list li:eq(0)')
- # 或者匹配所有.item-0类
- a = doc('.item-0')
复制代码
- 如果要获取href属性,HTML需要包含<a>标签:
- html
- <li class="item-0 active">
- <a href="[url=https://fishc.com.cn">带链接的条目</a>]https://fishc.com.cn">带链接的条目</a>[/url]
- </li>
复制代码
- 正确获取子元素的属性:
- python
- # 先选择<li>,再找子元素<a>
- link = doc('.item-0 a').attr('href')
- print(link) # 输出:[url=https://fishc.com.cn]https://fishc.com.cn[/url]
复制代码
验证示例:
- python
- from pyquery import PyQuery
- html = '''
- <div class="container">
- <ul class="list">
- <li class="item-0 active">
- <a href="[url=https://fishc.com.cn">带链接的条目</a>]https://fishc.com.cn">带链接的条目</a>[/url]
- </li>
- <li class="item-1">普通条目</li>
- </ul>
- </div>
- '''
- doc = PyQuery(html)
- # 正确获取href属性
- link = doc('.item-0 a').attr('href')
- print(link) # 输出:[url=https://fishc.com.cn]https://fishc.com.cn[/url]
复制代码
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|