2017-03-17 69 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

是的,对不起。只是现在就做了。 –