python实现简单爬虫功能

 1 #首先我们可以先获取要下载图片的整个页面信息
 2 #coding=utf-8
 3 #Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据
 4 import urllib
 5 import re
 6 #首先,我们定义了一个getHtml()函数:
 7 def getHtml(url):
 8 #urllib.urlopen()方法用于打开一个URL地址
 9     page = urllib.urlopen(url)
10 #read()方法用于读取URL上的数据,向getHtml()函数传递一个网址,并把整个页面下载下来。执行程序就会把整个网页打印输出。
11     html = page.read()
12     return html
13 
14 #创建了getImg()函数,用于在获取的整个页面中筛选需要的图片连接
15 def getImg(html):
16 #采用正则表达式取出页面中图片的url
17     reg = r'src="(.+?\.jpg)" pic_ext'
18 #re.compile() 可以把正则表达式编译成一个正则表达式对象
19     imgre = re.compile(reg)
20 #re.findall() 方法读取html 中包含 imgre(正则表达式)的数据
21     imglist = re.findall(imgre,html)
22 #通过一个for循环对获取的图片连接进行遍历,为了使图片的文件名看上去更规范,对其进行重命名,命名规则通过x变量加1
23     x = 0
24     for imgurl in imglist:
25 #urllib.urlretrieve()方法,直接将远程数据下载到本地
26         urllib.urlretrieve(imgurl,'%s.jpg' % x)
27         x+=1
28 #我们要爬的网址,对每个网址其图片存放方式可能不一样,所以需要不同的正则表达式
29 html = getHtml("http://tieba.baidu.com/p/2460150866")
30 print getImg(html)
31   
32 http://www.cnblogs.com/fnng/p/3576154.html#top

 update:

如果想将其下载在你指定的file中,只需要修改 

urllib.urlretrieve(imgurl,'%s.jpg' % x)

即可,
urlretrieve(url,path)
将path修改成你想要的,如我想放在 F:\pic
则修改为
urllib.urlretrieve(imgurl,'f:/pic/%s.jpg' % x)
就可以了~~

update by 2015.1.27:
实现下载多个页面的图片,以下载煎蛋妹子图(不要问我为什么~~)为例:
先贴上代码
 1 #coding=utf-8
 2 import urllib
 3 import re
 4 import os
 5 
 6 urlList = 'http://jandan.net/ooxx/page-%s' 
 7 global x
 8 x=0
 9    
10 def getHtml(url):
11     page = urllib.urlopen(url)
12     html = page.read()
13     return html
14 
15 def getImg(html):
16     reg = r'src="(.*?\.jpg)" '
17     imgre = re.compile(reg)
18     imglist = re.findall(imgre,html)
19     global x
20     for imgurl in imglist:
21         urllib.urlretrieve(imgurl,'f:/pic/%s.jpg' % x)
22         x+=1
23 
24 
25 for i in range(1315, 1317):
26     
27     i=urlList % (i)
28     html=getHtml(i)
29     print getImg(html)

这段代码与上面相比就是增加了一个全局变量,用以实现命名时不覆盖,然后对于其每一页的URL进行分析得到的一个共性,

用  ‘http://jandan.net/ooxx/page-%s’ 及一个for循环来下载你指定的页面。

posted @ 2015-01-26 20:48  莲藕排骨汤  阅读(208)  评论(0编辑  收藏  举报