ilikehassbian 发表于 2019-3-1 22:30:16

爬虫插件盖楼贴(萌新尝试)

本帖最后由 ilikehassbian 于 2019-3-1 23:06 编辑

最近在论坛上看到了这个帖子【油价】萌新探索之四:第一个自制脚本爬取简单的HTML信息https://bbs.hassbian.com/thread-3360-1-1.html,寻思着也用这位大神的套路来套一下中国气象台,所以便开始自己琢磨,刚开始想直接抓网页数据,发现好像是引用了外部来的数据,所以没成功,只返回了空格,接下来我用浏览器开发者工具的network来抓了一下包,发现果然数据走了另外一条通道,网页只是引用数据,所以第一次没成功,但是我在network里发现了天气数据的地址,所以便改变了思路,改为从数据里用正则抓包,果然成功,所以便把我的第一个爬虫来给大家看看,后续有时间,我会再完善爬虫功能,毕竟我发现的这个api无限次数,还是气象台官方的,我会争取直接对接HASS,(此贴不断更新中)
下面爬虫

import requests
import re
self_city_code = '54511'
def get_html(url):
    heads = {}
    heads['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'
    req = requests.get(url, headers=heads)
    req.encoding='utf-8'
    html = req.text
    return html


def get_weather(html):
    temp = r'"temperature":(.+),"airpressure'
    temperature = re.findall(temp, html)
    sumray = r'"info":"(.+)","img'
    sumraylist = re.findall(sumray, html)
    hum = r'"humidity":(.+),"rain'
    humidity = re.findall(hum, html)
    ra = r'"rain":(.+),"rcomfort'
    rain = re.findall(ra, html)
    feel = r'"feelst":(.+)},"wind"'
    feeltemp = re.findall(feel, html)
    presure = r'"airpressure":(.+),"humidity"'
    airpressure = re.findall(presure, html)
    print(sumraylist, temperature, humidity, airpressure, rain, feeltemp,)


if __name__ == '__main__':
    url = 'http://www.nmc.cn/f/rest/real/'+self_city_code+''
    get_weather(get_html(url))
具体爬虫配置请参考:https://bbs.hassbian.com/thread-3360-1-1.html
self_city_code 是气象台站,需要自己查询,这里默认北京,举几个例子:北京:54511 上海:58367 其他的需要自己去查,
http://www.doc88.com/p-6631998333691.html 或者百度:气象台站号
顺便说一下,这个爬虫还处于原型期,self_city_code ,只可以输出:温度、湿度、降雨量、概况、体感温度、气压。只可以用command_line sensor,并且需要自己制作template sensor,但是等我后期完善后,就直接可以接入hass了,不需要command_line了,自己目前还在研究HASS的开发者文档,应该会于近期发布完整版本,到时候,这个爬虫就应该会具有空气质量,七天预报等功能了,可以作为彩云替代品,而且不用担心api次数,还免费
研究网站不易,这也是我的第一个爬虫,求大神指教如何不用command_line 对接hass,请大神轻拍哦。

lijun9701 发表于 2019-3-1 23:04:55

支持一下,期待你的HA产品。

xieahui 发表于 2019-3-2 09:00:11

把论坛爬了呗,刷新可以久一点,几分钟都没事;P

sdvd 发表于 2019-3-2 10:54:56

支持一下,谢谢分享!

pigcais 发表于 2019-3-2 12:24:40

xieahui 发表于 2019-3-2 09:00
把论坛爬了呗,刷新可以久一点,几分钟都没事

你想把论坛都爬光吧

ilikehassbian 发表于 2019-3-2 13:49:41

xieahui 发表于 2019-3-2 09:00
把论坛爬了呗,刷新可以久一点,几分钟都没事

囧不把我锤死

ilikehassbian 发表于 2019-3-2 13:50:53

pigcais 发表于 2019-3-2 12:24
你想把论坛都爬光吧

哈哈,本来打算发爬论坛的,可是...

xieahui 发表于 2019-3-2 13:51:33

ilikehassbian 发表于 2019-3-2 13:49
囧不把我锤死

能爬最近一个礼拜的新帖子吗?
刷新可以几分钟都可以 这样不影响论坛性能吧 ;P

ilikehassbian 发表于 2019-3-2 14:37:57

xieahui 发表于 2019-3-2 13:51
能爬最近一个礼拜的新帖子吗?
刷新可以几分钟都可以 这样不影响论坛性能吧...

我试过了,可以爬精华部分

a3241 发表于 2019-4-1 22:32:36

https://www.hachina.io/docs/1976.html这里有个py脚本,改改应该可以用。
页: [1] 2
查看完整版本: 爬虫插件盖楼贴(萌新尝试)