最新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
- 最新2017年版利用Python3系列基础知识完成爬虫脚本带完整注释
- python3系列-爬虫解析
- 【备忘】2017年最新老男孩全新Python3.5零基础+高级+完整项目视频教程
- 爬虫系列之一 基础知识
- 最新pyinstaller打包python3.6.3完整过程
- Python3爬虫糗事百科最新可用
- 完整的HelloWin程序_带注释
- 排序算法(带完整注释)
- python3爬虫 - 利用浏览器cookie登录
- Python3.5爬虫urllib系列之三
- 【备忘】最新Python3网络爬虫实战案例高清视频教程
- 慕课网Python3.x开发简单爬虫及完整源码
- python3.5爬虫完成笔趣阁小说的爬取
- 利用htmlparser爬虫获取指定完整的完整区域信息
- 带注释手动注入脚本命令整理
- pd生成带注释的sql脚本
- 使用Apache的FileUpLoad完成文件上传(源码+完整注释)
- 百度贴吧爬虫 2017 -11 -9版 python3.x
- 1
- Java程序—统计英文短文单词频率
- 【Java】cookie与session
- 【SpringMVC+mybatis】7.mybatis SqlMapConfig.xml文件详解
- MVC设计模式和MVVM设计模式的对比
- 最新2017年版利用Python3系列基础知识完成爬虫脚本带完整注释
- 2
- Java常见面试题
- nyoj 214 单调递增子序列(二)(LIS ---nlogn算法)
- Spring学习笔记(四) JavaConfig创建Bean与AOP编程相结合的Demo
- Google VR Sample 遇到 Gradle sync failed 的解决方案
- openVR之十二大驱动接口
- 四种常用的排序算法
- 学术笔记·人口老龄化与认识反思·十四