Python:无法使用bs4从网站中提取元素

时间:2017-03-17 01:38:44

标签: python eclipse python-3.x beautifulsoup python-requests

我正在尝试从此site中提取元素。更具体地说,我试图提取温度。

这是我尝试使用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'}))

它只返回一个空数组。

[]

如果有人能帮助我,我会非常感激。

注意:我是python的新手

1 个答案:

答案 0 :(得分:0)

好的,正如@RobinAnupol所提到的,你有几个选择,具体取决于你想要真正的浏览器的相似程度。

  1. 在浏览器上手动打开网站,观察网站使用javascript代码进行的api调用。使用python中的请求复制它们

  2. 使用splash

  3. 等javascript呈现引擎
  4. selenium与真正的浏览器一起使用(有chrome的驱动程序,即firefox,phantomjs等)