python3与2在语言使用方面有较大的差异,最基本的像print语句,2直接
print x
即可,而3则需要加括号
print(x)
否则会报错。
此外,还有一些模块的使用,2跟3也有明显的差异,比如在2中直接用urllib即可,而3里需要使用urllib.request,如果直接使用2的代码就会报错。
由于2的时间较长,所以网上的很多代码教程还是以2为主,有时候经常会报错。
以下代码可以实现从网页中爬取图片:(代码来自http://www.cnblogs.com/fnng/p/3576154.html)
import urllib.request
import re
def getHtml(url):
page = urllib.request.urlopen(url)
html = page.read()
html = html.decode('UTF-8')
return html
def getImg(html):
reg = r'src="(.+?\.jpg)" pic_ext'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
x = 0
for imgurl in imglist:
urllib.request.urlretrieve(imgurl,'%s.jpg' %x)
x+=1
print(x)
getImg(getHtml("http://tieba.baidu.com/p/2460150866"))
另外,在python3中需要使用decode对爬取的HTML页面进行解码,否则会报错,使用decode时需要确认该页面的编码格式。