python登录网页后打印_python爬虫中文网页cmd打印出错问题解决
问题描述
用python写爬虫,很多时候我们会先在cmd下先进行尝试。
运行爬虫之后,肯定的,我们想看看爬取的结果。
于是,我们print...
运气好的话,一切顺利。但这样的次数不多,更多地,我们会遇到这样的错误:
UnicodeEncodeError: 'gbk' codec can't encode character
好吧,回去检查网页的编码格式:gb2312
代码中也添加了:r.encoding = 'gb2312'
看不出哪里出了问题,应该没问题的啊!
代码如下:
import requests
from bs4 import BeautifulSoup
url = 'http://bbs.ok226.com/bbs/html/'
r = requests.get(url)
r.encoding = 'gb2312'
soup = BeautifulSoup(r.text, 'html.parser')
# 打印
print(soup.get_text(strip=True))
解决办法:
A.改变控制台编码
网上查,都说是cmd控制台的问题。默认控制台编码gbk
好吧,那就改一下控制台编码,改成gbk的超集gb18030
试试看再说。。。嗯,很好,无报错,但是有乱码,算是解决了问题!
代码如下:
import requests
from bs4 import BeautifulSoup
url = 'http://bbs.ok226.com/bbs/html/'
r = requests.get(url)
r.encoding = 'gb2312'
soup = BeautifulSoup(r.text, 'html.parser')
# 改变控制台编码
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
# 打印
print(soup.get_text(strip=True))
B.直接改字符编码
顺着这个思路,再一想,改控制台编码那还不如直接改字符编码:r.encoding = 'gb18030'
试试看再说。哎,没问题了,无报错,无乱码,完美解决!
代码如下:
import requests
from bs4 import BeautifulSoup
url = 'http://bbs.ok226.com/bbs/html/'
r = requests.get(url)
r.encoding = 'gb18030' # 注意网页编码是 gb2312
soup = BeautifulSoup(r.text, 'html.parser')
# 打印
print(soup.get_text(strip=True))
总结
从ASCII、GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。
各种编码字符数目
gb2312: 7445 -- 在windows中的代码页是CP936
gbk: 21886 -- 在windows中的代码页是CP936
gb18030: 27484 -- 在windows中的代码页是CP54936
gb13000: 等同于unicode
显然,gb18030 是 gb2312,gbk 的超集
因此,解决问题的思路就是:
如果控制台中,打印中文文本出问题,那就用它的编码的超集进行编码。
python登录网页后打印_python爬虫中文网页cmd打印出错问题解决相关推荐
- python自带网页解析器_Python爬虫Chrome网页解析工具-XPath Helper
之前就说过Python爬虫中Xpath的用法,相信每一个写爬虫.或者是做网页分析的人,都会因为在定位.获取XPath路径上花费大量的时间,在没有这些辅助工具的日子里,我们只能通过搜索HTML源代码,定 ...
- python网页结构分析图_Python爬虫解析网页的4种方式 值得收藏
用Python写爬虫工具在现在是一种司空见惯的事情,每个人都希望能够写一段程序去互联网上扒一点资料下来,用于数据分析或者干点别的事情. 我们知道,爬虫的原理无非是把目标网址的内容下载下来存储到内存中, ...
- python脚本自动qq签到_Python爬虫实现自动登录、签到功能 附代码
这篇文章主要介绍了Python爬虫实现自动登录.签到功能的代码,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 前几天在一个素材网站上下载东 ...
- python登录网站后爬取数据_用 Python 登录主流网站,我们的数据爬取少不了它
不论是自然语言处理还是计算机视觉,做机器学习算法总会存在数据不足的情况,而这个时候就需要我们用爬虫获取一些额外数据.这个项目介绍了如何用 Python 登录各大网站,并用简单的爬虫获取一些有用数据,目 ...
- python批量下载网页文件夹_Python抓取网页批量下载文件方法初探(正则表达式+BeautifulSoup) (转)...
最近两周都在学习Python抓取网页方法,任务是批量下载网站上的文件.对于一个刚刚入门python的人来说,在很多细节上都有需要注意的地方,以下就分享一下我在初学python过程中遇到的问题及解决方法 ...
- python抓取数据库数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储...
Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...
- python 获取html js 变量_Python爬虫与反反爬虫实践
因为要收集数据,所以打算自己撸一个爬虫,期间碰到网站的反爬措施,让我非常头疼,在此记录一下. 基础 爬虫的基础是不需要自己手动通过浏览器访问网页,而是通过程序构造网络请求,获取网站返回的结果.例如使用 ...
- python scrapy框架 简书_python爬虫框架——Scrapy架构原理介绍
说起写爬虫,大多数第一时间想到的就是python了.python语法简洁明了,加上及其丰富好用的库,用它来写爬虫有天然的优势. 之前学python的时候也用requests+lxml写过几个爬虫玩,但 ...
- python信息检索和评价系统_Python爬虫实现的微信公众号文章下载器
所以我就想有什么方法能否将这些公众号文章下载下来.这样的话,看起来也方便.但是网上的方法要么太复杂(对于我这个爬虫入门新手来说),要么付费. 但我的需求其实却很简单--"方便的查找 / 检索 ...
最新文章
- python编程超市购物系统_python实现简单购物车系统(练习)
- 重磅直播|大规模点云可视化技术
- [ 一起学React系列 -- 11 ] React-Router4 (1)
- mysql有两个结果集,MySQL:两个结果集的差异
- java双链表基本方法_Java数据结构之双端链表原理与实现方法
- VTK:可视化之ShepardInterpolation
- SQL-33 创建一个actor表,包含如下列信息
- 【软件开发底层知识修炼】二十三 ABI-应用程序二进制接口三之深入理解函数栈帧的形成与摧毁
- linux7如何进入紧急模式,CentOS7开机进入紧急模式EmergencyMode的解决办法
- IIS OCIEnvCreate failed with return code -1
- SpringCloud 从菜鸟到大牛之二 服务注册与发现 Sping Cloud Eureka
- 期待!华为P40渲染图再曝光:前置打孔双摄+6.5英寸大屏
- 如何使用 Apple Watch 拨打电话?
- 如何在Mac上恢复格式化的相机卡
- paip.python错误解决12
- 4600u黑苹果 r5_黑苹果集显hd4400、hd4600显卡Clover引导驱动方法教程
- 虚幻4 配置打包安卓
- 给传智播客的一份感谢信
- 【进程、线程和进程间通信】(三)进程间通信
- Android ViewGroup介绍+实例,大厂架构师经验分享