我想从此页面获取数据(数字)。有了这些数字,我想做一些数学运算。
我当前的代码:
{%extends "blogi/base.html"%}
{% load crispy_forms_tags %}
{%block content%}
<div class="content-section">
<form method="POST">
{%csrf_token%}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Liity</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Rekkkaa</button>
</div>
</form>
<div class="border-top pt-3">
<a class="text-muted">Joko sinulla on tili? <a href="#">Kirjaudu tästä</a> </small>
</div>
</div>
{%endblock content%}
从页面请求中,我得到以下结果:
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> <span style="font-size:11px;color:green">305 (16.56%)</span></td>
<td id="d05" class="">1,842</td>
ID。
答案 0 :(得分:0)
该页面的问题在于它的内容是动态生成的。在您获取页面的html时,尚未生成实际的元素(我想它们是由页面上的javascript填充的)。有两种方法可以解决此问题。
乍看之下,我可以看到您正在使用此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
。
答案 1 :(得分:0)
也许这可能有效:
result=requests.get("http://www.tsetmc.com/Loader.aspxParTree=151311&i=45050389997905274")
c = result.content
soup = BeautifulSoup(c , features='lxml')
for tag in soup.find_all('td')[0:2]:
print(tag.get('id'))