[笔记]python爬虫学习笔记(一)——网页的获取和打印

运行平台:Windows 
Python版本:Python3.x 
IDE:Sublime text3

学习参考博客:http://blog.csdn.net/c406495762/article/details/58716886

开发环境搭建参考博客:http://www.cnblogs.com/nx520zj/p/5787393.html

在Subilime text3 搭建python编译环境时遇到了各种bug

安装Anaconda插件以后,编写python代码以后有白色方框ORZ,可能原因是代码不符合PEP 8规范

解决方法有两个:

一是直接关闭Anaconda的这项提示,Sublime > Preferences > Package Settings > Anaconda > Settings User 中添加如下代码:

[python]  view plain  copy
  1. {"anaconda_linting": false}  
二是安装格式化插件Python PEP8 Autoformat,快捷键Ctrl+Shift+R。下载: https://bitbucket.org/StephaneBunel/pythonpep8autoformat

简单爬虫:

urllib包:处理URL

包含模块:

urllib.request:打开并读取URLs

urllib.error:包含一些有urllib.request产生的错误,可以使用try进行捕捉

urllib.parse:包含一些解析URLs的方法

urllib.robotparser:解析robots.txt文本文件,它提供了一个单独的RobotFileParser类,通过该类提供的can_fetch()方法测试爬虫是否可以下载一个页面

打开网站,读取并打印信息

# -*- coding: UTF-8 -*-
import io
import sys
from urllib import request
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')		#改变标准输出的默认编码
if __name__ == "__main__":
	response = request.urlopen("http://fanyi.youdao.com/")
	html = response.read()
	html = html.decode('utf-8')		#根据网页的编码方式进行解码
	print(html)

报错:UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 4005: illegal multibyte sequence

报错原因:print()函数自身有限制,不能完全打印所有的unicode字符。

解决办法:

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')    #改变标准输出的默认编码

参考博客:https://blog.csdn.net/jim7424994/article/details/22675759


获取网页的编码方式:

安装第三方库chardet

安装时遇到的问题:

打开cmd:右键开始,运行,输入cmd

更新pip:输入命令

python -m pip install --upgrade pip             # 升级pip(python3.4之后的版本都自带了PIP,但是需要升级之后才能使用)

安装chardet

我的python文件在D盘,cmd中cd切换到D盘出了点问题,cd之后再输入"d:"就ok了,切换到pip所在的目录下,例如我的目录为“D:\coding\python36\Scripts”,然后输入指令:

pip install chardet

然后就可以用啦~

# -*- coding: UTF-8 -*-
from urllib import request
import chardet
if __name__ == "__main__":
	response = request.urlopen("http://fanyi.youdao.com/")
	html = response.read()
	chardet = chardet.detect(html)
	print(chardet)


猜你喜欢

转载自blog.csdn.net/Cccrush/article/details/80279162