最新2017年版利用Python3系列基础知识完成爬虫脚本带完整注释

来源:互联网 发布:网络灯具店 编辑:程序博客网 时间:2024/06/05 16:29

引言

爬虫已经有很多了,我在网上找了很多,但是都不能执行,于是敲了一份新鲜的,拿出来分享,应该可以直接运行,执行前请查看python版本。


版权所有:CSND_Ayo,转载请注明出处:http://blog.csdn.net/csnd_ayo


文章最后更新时间:2017年4月2日 22:13:45

简介

编程IDE:Pycharm 2016.1.2

开发环境:Python 3.6.1

操作系统:Window 7


赏析



源码

代码注释已经无比清晰,就不再过多赘述了。

# -*- coding:utf-8 -*-## 爬虫系列 - http://jandan.net/ooxx/# 作者:陈鲁勇# 邮箱:727057301@qq.com# 撰写时间:2017年4月2日 22:06:54# Python版本:3.6.1# CSDN:http://blog.csdn.net/csnd_ayo#import urllib.requestimport osimport time# 打开URL,返回HTML信息def open_url(url):    # 根据当前URL创建请求包    req = urllib.request.Request(url)    # 添加头信息,伪装成浏览器访问    req.add_header('User-Agent',                   'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36')    # 发起请求    response = urllib.request.urlopen(req)    # 返回请求到的HTML信息    return response.read()# 查找URL中的下一页页码def get_page(url):    # 请求网页,并解码    html=open_url(url).decode('utf-8')    # 在html页面中找页码    a=html.find('current-comment-page')+23    b=html.find(']',a)    # 返回页码    return html[a:b]# 查找当前页面所有图片的URLdef find_imgs(url):    # 请求网页    html=open_url(url).decode('utf-8')    img_addrs=[]    # 找图片    a = html.find('img src=')    #不带停,如果没找到则退出循环    while a != -1:        # 以a的位置为起点,找以jpg结尾的图片        b = html.find('.jpg',a, a+255)        # 如果找到就添加到图片列表中        if b != -1:            img_addrs.append(html[a+9:b+4])        # 否则偏移下标        else:            b=a+9        # 继续找        a=html.find('img src=',b)    return img_addrs# 保存图片def save_imgs(img_addrs):    for each in img_addrs:        print('download image:%s'%each)        filename=each.split('/')[-1]        with open(filename,'wb') as f:            img=open_url("http:"+each)            f.write(img)# 下载图片# folder 文件夹前缀名# pages 爬多少页的资源,默认只爬10页def download_mm(folder='woman',pages=10):    folder+= str(time.time())    # 创建文件夹    os.mkdir(folder)    # 将脚本的工作环境移动到创建的文件夹下    os.chdir(folder)    # 本次脚本要爬的网站    url='http://jandan.net/ooxx/'    # 获得当前页面的页码    page_num=int(get_page(url))    for i in range(pages):        page_num -= i        # 建立新的爬虫页        page_url=url+'page-'+str(page_num-1)+'#comments'        # 爬完当前页面下所有图片        img_addrs=find_imgs(page_url)        # 将爬到的页面保存起来        save_imgs(img_addrs)if __name__ == '__main__':    download_mm()


8 0
原创粉丝点击