引言:自学python已经一年有余,起初是因为兴趣,能方便的做一些事情,比如爬虫之类的,而后由于上课的实验也可以用python解决,遂仔细学习python多时。遗憾的是,至今未能做出成型的东西,趁此机会对python3爬虫进行完整学习。
1:关于python2与python3的差别用多说。
关于python3,取消了python2中的urllib2模块,与urllib一并在python3合成的urilib包,内含error,parse,request reponse,robotparser模块,注意区别。
2:关于爬虫,目前我应该先解决关于一个页面的问题,后面再进行多个页面的讨论。
Begin:
一:用python抓取指定页面
关于python3里:
1::字符就是unicode字符,字符串就是unicode字符数组
2:str转bytes叫encode,bytes转str叫decode
代码如下:
## -*- coding: utf-8 -*-
import urllib.request
#百度女神吧首页
url = 'http://tieba.baidu.com/f?ie=utf-8&kw=%E5%A5%B3%E7%A5%9E&fr=search'
temp_data = urllib.request.urlopen(url).read()
data = temp_data.decode('utf-8')
print(data)
#(代码亲测以通过)
关于temp.data.decode('utf-8')一句,取决于该url所用的编码,若是gbk,则相应的改成gbk,否则会报错。
二:简单处理url
# -*- coding: utf-8 -*-
import urllib.request
import urllib
data = {}
data['word'] = 'python'
url_values = urllib.parse.urlencode(data)
url = 'http://www.baidu.com/s?'+url_values
temp_data = urllib.request.urlopen(url).read()
print(url_values)
print(temp_data)
#代码亲测以通过
注:urlencode函数将data字典转换为word=python的字符串,合成url,改Utemp_data为百度搜索python的返回数据。