- 使用urllib2中有一些问题首先是语言版本在py2.x的版蹦中urllib2是自带的,但是在py3.x的版本中
- python3把urllid,urllid2都打包成了urllid的包所以调用的时候直接调用urllid就可以了。
使用urllib下载网站的时候:
python2.x语法
import urllib2
def download(url):
print urllib2.urlopen(url).read()//打开url进行读取
python3.x语法
import urllib
def dowload(url):
print urllib.urlopen(url).read()//打开url进行读取输出
使用urllib包创建一个可以自定义切换用户并且发现错误可以自动重试的dolnload()函数
import urllib2
def download(url,user_agent='wswp',num_retries=2):
print('Downloading:',url)
# headers设置HTTP首部字段User-agent
headers = {'User-agent':user_agent}
# 使用urllib2把url和headers加载进去
request = urllib2.Request(url,headers=headers)
try:
# html读取网页检查是否报错
html=urllib2.urlopen(request).read()
except urllib2.URLError as e:
# 抛出错误的url清空html尝试重新进行链接
print('Download Error:',url)
html=None
if num_retries>0:
if hasattr(e,'code') and 500<= e.code <600:
return download(url,user_agent,num_retries-1)
return html
# 2.x版本编写
在基础爬虫中最重要的就是download()这个函数这个函数贯穿爬虫的始与终,作用主要是用来下载整个网站,然后再用函数对下载下来整个网站做分析,获取到想要的内容,这些是我们写网络爬虫的基本思想