简介
爬取网页——标准库urllib3、第三方库requests
分析网页——正则表达式库re、第三方库beautifulsoup4
问题
问题:print(html.decode("utf-8"))出错,错误如下:
UnicodeDecodeError: 'utf-8' codec can'tdecode bytes in position 358-359: unexpected end of data
解决:修改字符集参数,一般这种情况较多出现在国标码(GBK)和utf-8之间选择出现了问题。
出现异常报错,是由于设置decode()方法的第二个参数(errors)为严格(strict)形式造成的。该参数默认为strict,将其更改为ignore即可。
print(html.decode("utf-8","ignore"))
<备注:必须确定网页是使用utf-8编码>
问题:如何查看网页采用的编码方式
解答:<常规方法>
打开网页,打开开发者工具(可直接按F12调出)
à在窗口‘console’标签下,输入‘document.charset’,即可查到网页编码
问题:ModuleNotFoundError: No module named 'urllib.request'; 'urllib' is
not a package的问题,即urllib包无效
解决:问题产生的原因有两种——1.正在import urllib的文件命名就是urllib.py;2. 正在使用的文件的文件夹目录下有一个叫urllib.py的文件。
更改.py文件名即可
强调:不能给py文件命名为urllib,会导致urllib导入出错
应用举例
#获取“辽宁本科教学网”的通知公告
步骤:爬取网页requests-解析网页BeatifulSoup-从网页内容中爬取有效信息soup.find-打印出结果