Python 3.0最简单的爬虫

做个小项目练练手,比较有动力继续下去,这边参考最简单的爬虫程序自己抄了一下。但是因为3.0的关系,无法直接使用,根据2.0版本的代码进行修改后成功了。

Python 3.0最简单的爬虫_第1张图片

代码如下:

# -*- coding: utf-8 -*-
# 网上抄来的最简单的爬虫,用于批量下载图片

import urllib.request
import re

#该函数用于获取html内容
#使用到urlopen的函数
def getHtml(url):
    page = urllib.request.urlopen(url)
    #3.0直接使用read()函数会出现报错,提示是编码有问题。在后面加上编码就ok了。
    html = page.read().decode("utf-8")
    return html

def getImg(html):
    #reg为正则替换,这边是根据贴吧的帖子的图片在html中的状态拼的,只适用于贴吧帖子下图
    #正则的详细教程见:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
    reg = r'src="(.+?\.jpg)" pic_ext'
    #compile比较简单的解释是制作一个漏斗,规则如reg,只有符合的才能够通过。
    imgre = re.compile(reg)
    imgList = re.findall(imgre, html)
    x = 0
    for imgurl in imgList:
        #print ("for test %s" % x) 查看是否走到循环用的print
        #urlretrieve() 方法直接将远程数据下载到本地
        urllib.request.urlretrieve(imgurl,'%s.jpg' % x)
        x += 1

#html变量定义一个需要读取的网址,这边选择的是某个贴吧的帖子。
html = getHtml("http://tieba.baidu.com/p/3115557410")
#执行操作
getImg(html)

print("all over!")

你可能感兴趣的:(Python笔记)