需要从网页获取访问次数,但它隐藏在网页源中

时间:2017-09-04 05:43:15

标签: python web-scraping beautifulsoup

<div class="box_content row">
<br/>
<h3 class="nomargin">Historial del aviso</h3>
<br/>
<ul>
<li style="display:inline;margin-right:30px;">
<b>Actualizado:</b> <span>

                31 08</span> </li>
<li style="display:inline; margin-right:30px"><b>Visitas:</b> <span id="numAdvertVisits"></span></li>
<li style="display:inline; margin-right:30px"><b>Código Fincaraiz:</b> <span>  2991591</span> </li>
</ul>
<br/>
</div>

由于我的python脚本,我得到了上面的html元素,但它没有显示网页的访问次数。

然而,在检查Inspect元素时,它显示了来自网页的访问次数,如下所示。

<span id="numAdvertVisits">33</span>

使用以下代码获取上述html元素

import requests
from bs4 import BeautifulSoup
page = requests.get('https://www.fincaraiz.com.co/casa-en-venta/cali/ciudad_jardin-det-2991591.aspx')
soup = BeautifulSoup(page.content, 'lxml')
visit = soup.find('div' , 'box_content row')
print (visit)

如何从网页获取访问次数。

2 个答案:

答案 0 :(得分:0)

尝试修改此行:

visit = soup.find('span' , 'numAdvertVisits')

答案 1 :(得分:0)

这是因为该元素正在被AJAX调用填充。该请求的AJAX URL是 - https://www.fincaraiz.com.co/WebServices/Statistics.asmx/GetAdvertVisits?idAdvert=2991591&idASource=40&idType=1001

您可以使用Firebug或Chrome开发者工具找到这些网址。

这是您的更新代码:

import requests
from bs4 import BeautifulSoup
page = requests.get('https://www.fincaraiz.com.co/WebServices/Statistics.asmx/GetAdvertVisits?idAdvert=2991591&idASource=40&idType=1001')
soup = BeautifulSoup(page.content, 'lxml')
visit = soup.find('double').get_text()
print (visit)