我查看了类似问题的不同帖子,但我无法找到我正在寻找的特定值。
我正在使用此代码:
import bs4 as bs
import urllib2
response = urllib2.urlopen('https://www.meteomedia.com/ca/meteo/quebec/montreal?wx_auto_reload=')
html = response.read()
soup = bs.BeautifulSoup(html, 'lxml')
for div in soup.find_all('div', id="main-container"):
print (div.get_text())
我无法找到此特定行(突出显示的那一行):https://i.stack.imgur.com/OIlrc.png
我知道我可以使用API,但我试图了解网络抓取如何适用于未来的项目。谢谢!!
答案 0 :(得分:1)
您选择的网站可能会使用javascript创建其大部分内容,因此使用简单的Python请求不会为您提供所有最终的HTML。解决方法是使用selenium
之类的东西来远程控制浏览器并让浏览器呈现HTML。然后,Python可以通过selenium提取最终的HTML。
如前所述,在这种情况下,使用正在使用的API提取信息会更有意义,例如:
import bs4 as bs
import urllib2
import json
response = urllib2.urlopen('https://www.meteomedia.com/api/data/caqc0363/cm?ts=1012')
json_response = json.loads(response.read())
print json_response['obs']['t']
这会将当前温度显示为:
-10
如果您print json_response
,您将能够看到可以使用的所有可用信息。
答案 1 :(得分:0)