2017-03-17 70 views
0

我試圖從這個site提取元素。更具體地說,我試圖提取溫度。Python:不能從網站提取元素與bs4

這是下面的元素,我試圖用BeautifulSoup4提取:

<p class="temperature">-1<span>°C</span></p> 

以下是應該自提現場提取的元素我的Python代碼:

import requests 
from bs4 import BeautifulSoup 

url = requests.get('https://www.theweathernetwork.com/ca/weather/ontario/mississauga') 

soup = BeautifulSoup(url.content, 'lxml') 

print(soup.find_all('p', {'class':'temperature'})) 

而且它只是返回一個空數組。

[] 

如果有人能幫助我,我會非常感激。

注:我是新來蟒蛇

+1

細節你想通過JavaScript加載,所以python-requests是不夠的。它是空的,因爲它**是空的。你在做什麼是網絡抓取。 http://stackoverflow.com/questions/26393231/using-python-requests-with-javascript-pages –

+0

我明白了。那麼你推薦我用什麼庫來提取數據? –

回答

0

好吧,從而@RobinAnupol提到的,你有幾種選擇取決於您希望如何相似,是一個真正的瀏覽器。

  1. 在瀏覽器上手動打開網站,並觀察api調用該網站與JavaScript代碼。複製他們使用要求在巨蟒

  2. 使用像splash

  3. 一個JavaScript渲染引擎使用selenium一個真正的瀏覽器(有鍍鉻驅動器,IE,火狐,phantomjs等)

+0

我剛剛用硒測試過它,它的工作方式與計劃相同,與請求相比較低,但這可能是因爲我想要提取的文本是javascript而不是HTML。 –

+0

太好了。如果你想接受這個答案,那麼這個問題就不會顯示爲沒有答案 –

+0

是的,對不起。只是現在就做了。 –