解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX
1 错误在使用爬虫爬取网络数据时,容易报下面的错误,也就是Unicode解码错误。UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 0: illegal multibyte sequence
str转bytes叫encode,bytes转str叫decode,如上面的代码就是将抓到的字节流给decode成unicode数组,我们使用下面的代码测试一下:
1print(b'\xc2\xbb'.decode('utf-8'))
运行结果:UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xbb’ in position 0: illegal multibyte sequence
从结果可以看出,报错了。和爬虫的错误一模一样。
错误原因解析python语言自身的限制,由于print()方法并不能完全输出所有的unicode编码中的字符,所以我们有时 ...
python中的nonlocal和global关键字解析,python闭包解析
1 namespace在python中。只有模块(module)才会重新开辟一个新的作用域,像if/else,for loop,while loop等是不会开辟新的作用域的。也就是说,在上述这几个循环体或控制体中的变量,在外部也就是主作用域中一样可以调用。看下面代码:
123for i in range(10): s = i print(s)
运行结果:9
从代码中可以看出,这几个控制体中不存在作用域。
2 global上一节讲述了作用域,这里就介绍一下global关键字。先看代码:
1234567num = 100def test(): num = 10 num = num * 2 print(num)test()
运行结果: 20
如果想要在test()函数内部调用外部的num变量,那么就需要使用global关键字。如下:
12345num = 100def test(): global num num = num * 2 print(num)
运行结果:200
3 nonlocal在介绍nonlocal关键字之前,大家需要先了解一下 ...
UnicodeDecodeError: 'gb2312' codec can't decode byte 0x87 in position 16144: illegal multibyte sequence
1 问题UnicodeDecodeError: ‘gb2312’ codec can’t decode byte 0x87 in position 16144: illegal multibyte sequence
2 分析解码错误,我们在用python爬虫爬取网页信息时,通常会遇到编码问题,这是其中的一种,中文编码问题更多。中文编码有如下几种,字符数以次增多:gb2312<gbk<gb18030,如果使用gb2312不能解码,那么可以使用gb18030解码试试
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
python爬虫如何下载存储图片
12345678def download_photo(): root = "g:/emojis/" url = "https://jums.club/images/avatar.jpg" with open(root + "name.jpg", "wb") as file: r = requests.get(url).content ## This is the main code file.write(r) ## the main code tooif __name__ == "__main__": download_photo()
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
一些比较好的爬虫项目汇总
English Version
1 爬虫入门
项目名称
项目介绍
python爬虫入门教程
这里主要介绍了一些爬虫的入门教程,非常适合小白入手
2 爬虫登录
项目名称
项目介绍
login-model
这是爬虫中的登录模块演示
3 用户代理(User-Agent)
项目名称
项目介绍
fake-useragent
这里面有很多的用户代理(浏览器),防止被服务器监测到是机器人
4 代理池
这里主要是一些HTTP Proxy代理项目,可以用于爬虫代理服务
项目名称
mitmproxy
haipproxy
scylla
getproxy
5 爬虫项目
项目名称
项目介绍
awesome-spider
这里介绍了很多的爬虫小项目,主要语言用的是python
Scrapy
一个股票数据爬虫,可以通过pip进行安装使用
ruia
一个异步爬虫框架,可以实现高速爬取
weixin_crawler
一个微信公众号爬虫项目,可以爬取一些公众号的文章
WechatSogou
一个微信搜狗搜索的API接口 ...
一些比较优秀的机器学习算法的汇总
English Version
机器学习项目1 预测1.1 时间序列预测
项目名称
项目介绍
LSTM
使用LSTM神经网络进行时间序列数据预测分析, 基于Tensorflow框架、Kerase接口开发网络模型
AIAlpha
该项目是堆叠神经网络预测股票回报的高级实现。
Air_Pollution_Forcast_Beijing
基于Keras的LSTM多变量时间序列预测
TimeSeries_Predict
客流量时间序列预测
TimeSeriesPrediction
洗发水、股票预测等
ARIMA
基于ARIMA的预测
TimeSeriesForecasting
基于统计学的时间序列预测
lstm-rnn-stock-predict
这是一个基于LSTM-RNN算法的线上金融股票价格走势预测的小项目,使用tensorflow框架实现。
TripleExponentialSmoothing
三阶指数平滑算法,对于带有趋势性及周期性的时间序列有不错的预测效果。
ML_stock_qt
基于机器学习算法的A股股票走势预测
inte ...
预测算法简介
0 A few more concept you need to know0.1 什么是bagging和boosting|linkbagging:Bagging是Bootstrap Aggregating的英文缩写,是指一种有放回采样boosting:提升方法(Boosting),是一种可以用来减小监督式学习中偏差的机器学习算法。面对的问题是迈可·肯斯(Michael Kearns)提出的:一组“弱学习者”的集合能否生成一个“强学习者”?弱学习者一般是指一个分类器,它的结果只比随机分类好一点点;强学习者指分类器的结果非常接近真值。
0.2 预测和拟合的区别?
预测:灰色预测的通用性比较强一些,一般场合都可以用,尤其适合那些规律性差且不清楚数据产生机理的情况。
拟合:拟合比较适合于那些清楚数据产生机理,有比较规则的变化趋势的场景,比如已经知道这些数据符合一定的动力学变化规律,这时用指数拟合就比较合适。
在数学建模中,能用拟合的地方尽量用拟合,这样会有具体的函数表达式,更有利于进一步的建模。当然有些问题就是数据的预测,这种情况哪种精度高就用哪种了(建议都用,便于比较),上面所说 ...
时间序列算法综述
时间序列预测的顺序
时间序列的正式定义如下:它是一系列在相同时间间隔内测量到的数据点。时间序列的特殊性是:该序列中的每个数据点都与先前的数据点相关。知乎问答:利用Auto ARIMA构建高性能时间序列模型(附Python和R代码)|source article
#参考文献常见Markdown公式代码《时间序列分析》-作者:詹姆斯·D·汉密尔顿(James D.Hamilton)预测:方法与实践
1 其中常见的时间序列预测算法1.1 朴素预测法(一次指数平滑)概念:利用前一时刻的数据,作为下一时刻数据的预测值,公式如下:
$X_{t+1} = X_i$
缺点:那么预测出来的结果会是一条平行线,因为预测结果都是之前的最后一个时刻的值。如下所示:
1.2 简单平均法概念:该方法是将之前的所有历史数据进行平均,不再是简单的利用最后一个时刻的数据作为预测值,图像是一条斜线,公式如下:
$X_{t+1} = \frac{1}{N} \sum^N_{i=1} X_i $
where:N表示所有的历史数据的总数.优点:不像“朴素预测法”那样,直接是一条平行线,该算法中 ...
如何在github上写博客
1 创建账号如果你还没有github账号,那么你可以到github官网注册账号,这里不多赘述。如果已经有账号,那么请看下面。
2 创建仓库(repositories)点击github网站的右上角的加号,创建一个仓库,名字可以自定义,符合规范就行。如下:
3 开始写博客进入到你刚刚创建的仓库,点击上面的wiki目录,开始创建博客,可以支持多种编辑格式。写完之后,你的所有博客都会汇总在这里,如下:
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
如何使用github的REST API接口获取github项目数据
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。