赞
踩
爬取html页面代码如下:
url = "xxxxxxxxxxxxxxxxxxx"
resp = requests.get(url)
# 将HTML二进制文件进行'gbk转码成字符串文件
html = resp.content.decode('gbk')
正则表达式匹配代码如下:
date = {}
date['日期'] = re.findall(r'<td ><b><a href=.*?>(.*?-.*?-.*?)</a> </b></td>',
html)
print(date)
以上代码用于匹配以下代码的日期:
<tr>
<td ><b>杭州</b></td>
<td ><b><a href='/lishi/hangzhou/20200827.html'>2020-08-27</a> </b></td>
<td > 大到暴雨</td>
<td>北风 3-4级</td>
<td>33℃</td>
<td>中雨</td>
<td>北风 3-4级</td>
<td> 25℃</td>
</tr>
正则表达式的匹配规则:
. 代表可以匹配一个任意字符(不包括不可见的换行字符)
* 代表可以任意次(0\sim \propto)地匹配它前面的子表达式(即“贪婪匹配”)
*? 代表“非贪婪匹配”
() 代表子表达式,把指定的内容放入缓存并返回
以下是我爬取到的数据,以一个json对象的形式展现
{
"date": ["2020-09-22", "2020-09-21", "2020-09-20(星期日)", "2020-09-19(星期六)", "2020-09-18", "2020-09-17", "2020-09-16", "2020-09-15", "2020-09-14", "2020-09-13(星期日)", "2020-09-12(星期六)", "2020-09-11", "2020-09-10", "2020-09-09", "2020-09-08", "2020-09-07", "2020-09-06(星期日)", "2020-09-05(星期六)", "2020-09-04", "2020-09-03", "2020-09-02", "2020-09-01", "2020-08-31", "2020-08-30(星期日)", "2020-08-29(星期六)", "2020-08-28", "2020-08-27", "2020-08-26", "2020-08-25", "2020-08-24"],
"day_high_temp": ["24", "24", "24", "19", "19", "25", "25", "25", "26", "27", "28", "29", "32", "34", "35", "34", "32", "33", "34", "34", "32", "33", "34", "33", "32", "28", "33", "36", "38", "37"],
"day_weather": ["小雨", "阴", "阴", "小雨", "小到中雨", "中雨", "小到中雨", "小雨", "小雨", "阴", "多云", "阴", "小雨", "阴", "晴", "晴", "晴", "多云", "多云", "晴", "小雨", "多云", "多云", "多云", "多云", "中雨", "大到暴雨", "多云", "小雨", "晴"],
"day_wind": ["北风 1-2级", "北风 1-2级", "东风 1-2级", "北风 3-4级", "东北风 1-2级", "北风 4-5级", "北风 1-2级", "北风 1-2级", "北风 1-2级", "北风 1-2级", "西北风 3-4级", "北风 3-4级", "东北风 3-4级", "东北风 1-2级", "东南风 3-4级", "西北风 3-4级", "北风 4-5级", "东风 4-5级", "东风 3-4级", "西北风 1-2级", "西北风 4-5级", "北风 5-6级", "东风 3-4级", "东风 3-4级", "西北风 3-4级", "北风 3-4级", "北风 3-4级", "西北风 3-4级", "西北风 3-4级", "东风 3-4级"],
"night_min_temp": ["20", "20", "18", "17", "17", "19", "23", "22", "22", "20", "21", "21", "25", "24", "23", "23", "24", "21", "23", "22", "22", "26", "26", "24", "24", "22", "25", "26", "27", "27"],
"night_weather": ["小雨", "小雨", "阴", "阴", "小雨", "中雨", "中到大雨", "小雨", "小雨", "多云", "多云", "多云", "小雨", "多云", "晴", "晴", "晴", "晴", "多云", "晴", "晴", "多云", "多云", "晴", "多云", "阴", "中雨", "多云", "小雨", "多云"],
"night_wind": ["北风 1-2级", "北风 1-2级", "东风 1-2级", "北风 3-4级", "东北风 1-2级", "北风 4-5级", "北风 1-2级", "北风 1-2级", "北风 1-2级", "北风 1-2级", "西北风 3-4级", "北风 3-4级", "东北风 3-4级", "东北风 1-2级", "东南风 3-4级", "西北风 3-4级", "北风 4-5级", "东风 4-5级", "东风 3-4级", "西北风 1-2级", "西北风 4-5级", "北风 5-6级", "东风 3-4级", "东风 3-4级", "西北风 3-4级", "北风 3-4级", "北风 3-4级", "西北风 3-4级", "西北风 3-4级", "东风 3-4级"]
}
数据的可视化展示使用Vue+ElementUI+Echarts来做
实习结束后也没有再接触过Vue了,这里记录一下项目的创建过程
第一步 创建项目
打开cmd 在父文件夹中输入vue init webpack weatherForecast
(weatherForecast是项目名)
第二步 ElementUI的引入
在安装了Nodejs的前提下,打开cmd 相应文件夹中输入cnpm i element-ui --save
然后直接完整引入,在 main.js 中写入以下内容:
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';
Vue.use(ElementUI);
new Vue({
el: '#app',
render: h => h(App)
});
第三步 启动Vue
cmd中输入npm run dev
python服务器的使用
因为数据是在python上爬取的,所以想用flask来做python端的服务器,究极方便,安装后仅仅需要以下代码即可使用
from flask import Flas
app = Flask(__name__)
# 解决中文乱码问题
app.config['JSON_AS_ASCII'] = False
app.config['JSONIFY_MIMETYPE'] = "application/json;charset=utf-8"
# API
@app.route('/')
def hello_world():
return 'Hello Flask!'
首先安装sklearn, Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。