初学python爬虫
看了几个星期廖雪峰老师的python教程之后,总发现学完新的东西,旧的就忘了。所以还是打算直接上路写爬虫了,边写边学python的基础知识。
python版本:python3.5
然而,作为一个萌新,我当然还是从urllib库开始学起。
要用这个工具,我当然是要去了解它怎么用。所以我去了官网查了一查。
(我好像找不到中文文档….)
urllib.request是用来打开和读取URLs,所以是要用到urllib.request。
1. 一个简单的小例子
那我们去爬取python的首页试试:
# -*- coding:utf-8 -*-
from urllib import request
def scrapy(url):
response = request.urlopen(url)
html = response.read().decode('utf-8', 'ignore')
print(html)
if __name__ == '__main__':
scrapy('https://www.python.org/')
第一次并不顺利,控制台显示如下:
大概就是,该网页有GBK不能解码的字节。
但我用的解码格式为utf-8(这是python首页使用的字符集)
由于解决过程,看了太多大神的博客,所以就直接贴出解决的方法。
先说一下原因,原因大概就是因为我的控制台默认输出字符集是GBK。
所以我们要更换一下控制台的输出字符集,即使用sys库.
sys库就是用来和系统交互用的, 下面代码我们将系统输出改为utf-8
代码更改为:
# -*- coding:utf-8 -*-
from urllib import request
from urllib.request import Request
import sys
import io
def scrapy(url):
request1 = Request(url)
response = request.urlopen(request1)
html = response.read().decode('utf-8','ignore')
print(html)
if __name__ == '__main__':
sys.stdout=
io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
scrapy('https://www.python.org/')
这样我们就把这个网页下载下来啦。