Python爬虫----爬虫入门(2)
2016-04-22 00:20
399 查看
开发环境,ubuntu 14.0.1自带python 2.7.6
urllib是python自带的库,可以用来抓取简单的静态页面。#coding=utf-8 import urllib #Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一 #样读取www和ftp上的数据。首先,我们定义了一个getHtml()函数: # urllib.urlopen()方法用于打开一个URL地址。 # read()方法用于读取URL上的数据,向getHtml()函数传递一个网址, #并把整个页面下载下来。执行程序就会把整个网页打印输出。 def getHtml(url): page = urllib.urlopen(url) html = page.read() return html html = getHtml("http://www.meizitu.com/a/5347.html") print html
这样就能得到网页的html代码了,但是要找出图片链接,这就要用到正则表达式了。
import re def getImg(html,y): reg = r'src="http://pic.+" />' imglist = re.findall(imgre,html) if imglist: for i in range(len(imglist)): imglist[i] = imglist[i][5:][:-4]
正则的使用参考此图,再加一个在线测试地址:
http://regex.supfree.net/
接下来就是下载图片了:使用下面这个函数
urllib.urlretrieve
运行成功,但是循环几次以后出现了
Connection reset by peer 链接被对方重置
后来加了一个
import time
sleep(0.5)在每次请求时,暂停0.5秒,以免请求过快。
完整代码就是:
#coding=utf-8 import urllib import re import time #Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一 #样读取www和ftp上的数据。首先,我们定义了一个getHtml()函数: # urllib.urlopen()方法用于打开一个URL地址。 # read()方法用于读取URL上的数据,向getHtml()函数传递一个网址, #并把整个页面下载下来。执行程序就会把整个网页打印输出。 def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html,y): reg = r'src="http://pic.+" />' imgre = re.compile(reg) imglist = re.findall(imgre,html) if imglist: for i in range(len(imglist)): imglist[i] = imglist[i][5:][:-4] # urllib.urlretrieve('http://pic.meizitu.com/wp-content/uploads/2016a/02/07/03.jpg','d7dd.jpg') x = 0 for imgurl in imglist: urllib.urlretrieve(imgurl, '%s-%s.jpeg' % (y, x)) time.sleep(0.5) print '第' + str(x) + '下好了' x += 1 else: print '没有找到地址' for i in range(5002,5350): html=getHtml('http://www.meizitu.com/a/%s.html'%str(i)) print i getImg(html,i) #print html
总结:抓下了妹子图网站几千张妹子的图片,但是只能抓取某些网址有规律(比如后面的数字是有规律增长的)
相关文章推荐
- 機械学習の Python との出会い
- Python开发之快速搭建自动回复微信公众号功能
- 基于python实现的抓取腾讯视频所有电影的爬虫
- Python核心编程-第四章
- Python核心编程-第四章课后习题
- Python基础语法
- Python进阶语法
- Python爬虫笔记----爬虫技术入门(1)
- python的可变长参数
- Python Requests 学习笔记
- Python工具包安装
- python第三方安装包
- python数据处理之列表、集合、字典推导式
- Python的迭代器和生成器
- python pieces
- 小白python进击第二周3.列表生成式问题
- 用python实现把数字人民币金额转换成大写的脚本程序
- Python菜鸟学习手册16----多进程
- Python语言集成开发环境搭建
- Python之Django--ORM连表操作