爬天气数据,解析网页的时候有个元素不知道怎么取

2018-04-09 10:40:22 +08:00
 LeIYc
<div class="minMax">
<div id="maxTempDiv" style="float: left;"><img src="http://i.tq121.com.cn/i/weather2017/max.png"><span id="maxTemp">26℃</span></div>
<div id="minTempDiv" style="float: left;"><img src="http://i.tq121.com.cn/i/weather2017/min.png"><span id="minTemp">19℃</span></div>
</div>


怎么才能把温度信息 取出来。
temp_list = soup.find_all('span',id='maxTemp')
temp_list = soup.find_all('span',class_='minMax')
最后结果都是没有温度信息,打印出来这个:
[<div class="minMax">
<div id="maxTempDiv"><img src="http://i.tq121.com.cn/i/weather2017/max.png"/><span id="maxTemp"></span></div>
<div id="minTempDiv"><img src="http://i.tq121.com.cn/i/weather2017/min.png"/><span id="minTemp"></span></div>
</div>]
这种元素提取有没有什么好一点的教程啊?求助!!!!!
4368 次点击
所在节点    Python
28 条回复
yu099
2018-04-09 14:34:29 +08:00
@LeIYc 打个断点,看哪个 js 加载的啊
yu099
2018-04-09 14:35:54 +08:00
或者直接 selenium,
@LeIYc 直接访问的话,你得看一下还带上什么信息的
woscaizi
2018-04-09 14:40:23 +08:00
直接带上 cookie 请求接口就 ok 了。
url: http://d1.weather.com.cn/sk_2d/101280601.html?_=1523255737236
cookie 类似这样:f_city=%E6%B3%B0%E5%AE%89%7C101120801%7C; Hm_lvt_080dabacb001ad3dc8b9b9049b36d43b=1523255730; Hm_lpvt_080dabacb001ad3dc8b9b9049b36d43b=1523255730; vjuids=2a011e2fb.162a91de08f.0.258106460fa03; vjlast=1523255730.1523255730.30; Wa_lvt_1=1523255731; Wa_lpvt_1=1523255731
还有就是一些基本的模仿浏览器的配置。
yuanfnadi
2018-04-09 14:40:39 +08:00
如果只是为了天气数据。可以看一下彩云天气的 api。免费的。
LeIYc
2018-04-09 16:08:20 +08:00
非常感谢大家,发现还是得仔细看一遍书啊。
《 Python 网络数据采集》这本怎么样,刚下载下来。准备好好看看。
F0nebula
2018-04-09 16:22:55 +08:00
jimmyczm
2018-04-10 10:14:14 +08:00
直接用 selenium 加载再查找好一点
from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://www.weather.com.cn/weather1dn/101280601.shtml')
min = browser.find_element_by_id('maxTempDiv')
max = browser.find_element_by_id('minTempDiv')
print(min.text, max.text)
baday
2018-04-12 09:55:17 +08:00
看对接口的请求记录,如果直接请求接口能够获取就不用模拟 js 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/445285

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX