python3.5图片爬取

时间:2022-11-16 20:01:31

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时需要确认该页面的编码格式。