gpt4 book ai didi

python - Beautifulsoup解析页表问题

转载 作者:行者123 更新时间:2023-11-27 23:30:30 25 4
gpt4 key购买 nike

我想从此页面获取数据(数字)。有了这些数字,我想做一些数学运算。

我当前的代码:

import requests
from bs4 import BeautifulSoup

result = requests.get("http://www.tsetmc.com/Loader.aspx?ParTree=151311&i=45050389997905274")
c = result.content

soup = BeautifulSoup(c , features='lxml')
cld=soup.select("#d03")

print(cld)

================
output : []

从页面请求我得到这个结果:

<td id="d04" class="">2,105</td>
<td id="d03" class=""><span style="font-size:15px;font-weight:bold">2,147</span>&nbsp;&nbsp;<span style="font-size:11px;color:green">305&nbsp;&nbsp;(16.56%)</span></td>
<td id="d05" class="">1,842</td>

根据这个结果,我只想要 <td> ID 的输出。

最佳答案

该页面的问题在于它的内容是动态生成的。当您获取页面的 html 时,实际的元素并没有生成(我想它们是由页面上的 javascript 填充的)。有两种方法可以解决这个问题。

  1. 尝试使用模拟浏览器的 selenium。实际上,您可以等待生成响应,然后获取所需的 html 元素。
  2. 另一种方法是查看页面为获取数据所做的任何网络请求。如果它没有加载到 html 中,肯定必须对他们的服务器进行另一个 API 调用以获取数据。

乍一看,我可以看到您需要的数据是通过此 URL 获取的。 (http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=45050389997905274&c=57+)。响应如下所示。

12:29:48,A ,2150,2147,2105,1842,2210,2105,2700,53654226,115204065144,1,20190814,122948;98/5/23 16:30:51,F,261391.50,<div class='pn'>4294.29</div>,9596315531133973,3376955600,11101143554708,345522,F,2046434489,11459858578563,282945,F,12927,3823488480,235,;8@240000@2148@2159@500@1,1@600@2145@2160@198067@2,10@1000000@2141@2161@2000@1,;61157,377398,660897;;;;0;

我想您可以通过查看他们的代码来详细了解解析逻辑。但看起来您只需要第二个元素 2147

关于python - Beautifulsoup解析页表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57507490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com