2017-09-04 38 views
0
<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> 

我得到了上面的html元素作爲我的python腳本的結果,但是它沒有顯示來自web的訪問次數頁。需要從網頁中獲取訪問次數,但它隱藏在頁面源中

但是,在檢查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) 

如何從網頁訪問的次數。

+0

也許有正在取得某種調用的異步獲得頁面數,則該值被加載到DOM分開?檢查你的瀏覽器開發工具,看看是否有任何請求正在進行。 –

回答

0

嘗試修改該行:

visit = soup.find('span' , 'numAdvertVisits') 
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) 
相關問題