m0_60128639 2022-02-25 12:44 采纳率: 100%
浏览 486
已结题

python+selenium+xpath如何定位网页table表格中的数据

如何获取网页表格中的猪肉价格?每个页面的猪肉价格所在行是变化的,如何精准定位到猪肉行?
我的代码该如何修改才能精准爬取猪肉价格呢?


from selenium.webdriver.common.by import By
from selenium import webdriver #导入selenium


url= input("请输入网址:")
driver = webdriver.Chrome()  #打开浏览器
driver.maximize_window()  # 将浏览器最大化
driver.get(url)  #打开网址

猪肉价格 = driver.find_element(By.XPATH,'/html/body/table/tbody/tr[5]/td[2]').text # xpath定位猪肉价格
print("猪肉价格是:",猪肉价格) # 打印猪肉价格

img

img

以下是页面A的源代码

<html>

<body>

<table width="400" border="1">
 <tr>
  <th align="left">A页</th>
  <th align="right">一月</th>
  <th align="right">二月</th>
 </tr>
 <tr>
  <td align="left">鸡肉</td>
  <td align="right">5元</td>
  <td align="right"></td>
 </tr>
 <tr>
  <td align="left">鸭肉</td>
  <td align="right">11元</td>
  <td align="right"></td>
 </tr>
 <tr>
  <td align="left">鹅肉</td>
  <td align="right">55元</td>
  <td align="right"></td>
 </tr>
 <tr>
  <td align="left">猪肉</td>
  <td align="right">5元</td>
  <td align="right"></td>
 </tr>

</table>

</body>
</html>


以下是页面B的源代码

<html>

<body>

<table width="400" border="1">
 <tr>
  <th align="left">B页</th>
  <th align="right">一月</th>
  <th align="right">二月</th>
 </tr>
 <tr>
  <td align="left">鸡肉</td>
  <td align="right">5元</td>
  <td align="right"></td>
 </tr>
 <tr>
  <td align="left">猪肉</td>
  <td align="right">12元</td>
  <td align="right"></td>
 </tr>
 <tr>
  <td align="left">鸭肉</td>
  <td align="right">32元</td>
  <td align="right"></td>
 </tr>
 <tr>
  <td align="left">鹅肉</td>
  <td align="right">43元</td>
  <td align="right"></td>
 </tr>

</table>

</body>
</html>

  • 写回答

2条回答 默认 最新

  • CSDN专家-HGJ 2022-02-25 14:24
    关注

    使用last()定位最后 一个tr节点,再用索引获取。示例:

    from lxml import etree
    with open('a.html','r',encoding='utf-8') as f:
        html=f.read()
    driver=etree.fromstring(html)
    猪肉价格 = driver.xpath('//tr[last()]/td[2]')[0].text  # xpath定位猪肉价格
    print("猪肉价格是:", 猪肉价格)  # 打印猪肉价格
    
    
    

    输出:

    F:\2022\pythontest>t3
    猪肉价格是: 5

    如有帮助,请点采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月12日
  • 已采纳回答 3月4日
  • 修改了问题 2月25日
  • 修改了问题 2月25日
  • 展开全部

悬赏问题

  • ¥30 FLUENT液固传质UDF
  • ¥15 怎么看梯度直方图以,怎么判断梯度消失/爆炸,怎么解决
  • ¥15 aspnetdll文件访问拒绝
  • ¥15 wpf中在模版中寻找元素
  • ¥15 MFC平台生成指定圆
  • ¥15 jmeter出现403
  • ¥500 求华为P30PRO手机硬盘数据恢复
  • ¥15 关于#vscode#的问题:ESP32开发板对接MQTT实现小灯泡的开关
  • ¥15 TMC2209串口模式下读取不到寄存器的值串口助手蓝色字体是发过去的消息,绿色字体是收到的消息,第二行发送读取寄存器的指令但是没有读取到寄存器的值串口助手如下图:接线如下图,如何解决?
  • ¥15 怎样删除 右键菜单里的 剪切(T)和复制(C)