gihutb 爬虫又又报错了,快来更新了
点击上方 壹家大数据,关注后发现更多精彩内容
数据来源:https://github.com/trending,后台回复 230101,获取 github 爬虫

免费提供 github 热搜历史数据,后台回复 邮箱 即可

gihutb 爬虫又又报错了,快来更新了

使用爬虫抓取 github trend 网页的时候,又报错了,难道 GitHub 又又更新网页了?

看了报错的日志后,这次冤枉 github 了,是爬虫脚本自己报的错:

UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘xe7’ in position 75: illegal multibyte sequence quence

从日志可以看到,出错的原因是无法使用 gbk 编码解析 ex7 编码。

但是比较奇怪的是,我记得爬虫脚本是没有地方使用 gbk 编码的,为什么会提示 gbk 报错呢?

刚看到这个报错的时候,我还以为是 github 修改了网页的编码格式,导致爬虫脚本使用 request 获取到信息流编码格式有问题。

但是仔细看完日志后,发现并不是网站的问题。因为日志中显示的是爬虫脚本中的 print(result) 这行代码出现了错误,如下图红色箭头标记的位置:

gihutb 爬虫又又报错了,快来更新了

但是呢,只是使用 print 将数据打印到控制台,记录下执行的过程,怎么就会出错呢,就很不理解。

然后在网上查了些资料后,发现 print 函数自身是有限制的,并不能打印所有 unicode 字符。

如果想要打印英文字符,可以使用下面的方法打印

print(result.decode('utf-8'))

但是使用上面的方法打印中文字符还是会出现乱码,可以使用下面的方法来解决

sys.stdout = io.TextIOwrapper(sys.stdout.buffer,encoding='gb18030')

但是,脚本中这条 print 命令用处不是很大,所以可以直接删除掉。修改后的脚本,我已经上传到 github, 大家及时更新脚本,保证爬虫脚本可用哦。

另外,本次更新还包含了使用百度翻译 API 自动翻译的功能,会在抓取的过程中自动将项目的简介从英文翻译成中文,并将中英文介绍存储到 mysql 数据库。可以点击下面的图片,了解具体的修改内容和使用方式:

gihutb 爬虫又又报错了,快来更新了

不过百度通用文本翻译的 API,翻译专业的词汇效果不能说一般,只能说有点差。

比如说下面的是 GitHub 上一个换脸项目的英文介绍:

gihutb 爬虫又又报错了,快来更新了

使用百度通用文本翻译 API 翻译出来的中文如下:

gihutb 爬虫又又报错了,快来更新了

后续,我再试试其他的翻译 API,比如有道翻译和微软翻译的 API,看下效果如何。

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...