工具:Python2.7 re库,urllib库
编辑器:sublime Text2
python和sublime Text下载安装的教程有很多,就不发上来了
sublime Text2配置Python运行环境:http://blog.sina.com.cn/s/blog_7da26c2c0101go82.html
为python文件命名为webspider.py
import urllib
import re
def getHtml(url):
page=urllib.urlopen(url)
html=page.read()
return html
def getImg(html):
reg=r'src="(.+?\.jpg)" size'
imgre=re.compile(reg)
imglist=re.findall(imgre,html)
x=0
for imgurl in imglist:
urllib.urlretrieve(imgurl,'%s.jpg'%x)
x+=1
return imglist
html=getHtml("http://tieba.baidu.com/p/4798566941")
print getImg(html)
上面是整段爬取的贴吧一页所有图片的爬虫代码
首先import导入re urllib库
然后编写getHtml和 getHtml函数
爬虫主要是分为3个部分;
1.获取整个页面的数据
python中的urllib模块提供了读取web页面数据的接口,我们可以使用它获取页面的数据,
urllib.urlopen方法则是用来打开一个URL地址read()方法用来读取URL上的数据,向getHtml返回了整个URL上的HTML代码
2.正则表达式筛选数据
正则表达式学习:http://www.cnblogs.com/fnng/archive/2013/05/20/3089816.html
通过F12键来打开页面的源代码,或者在谷歌浏览器上在想要获取的图片上通过点击右键检查来查看图片的代码,使用正则表达式将图片的URL地址匹配下载下来
在上面我们的代码中是匹配前面是src=下个字符开始,size上个字符结束,并且匹配到结尾为.jpg的表达式,re.findall()方法读取整个HTML中包含正则表达式imgre的数据
3.将页面筛选的数据下载到本地
urllib.urlretrive()方法,下载图片到本地,并按顺序命名为x.jpg
在sublime Text2中ctrl+B来跑程序,可以见到webspider.py文件夹中下载好了全部的图片