首页 > 代码库 > 第一次爬虫练习

第一次爬虫练习

在交互平台打印贴吧内的图片的链接地址

 1 #coding:utf-8
 2 
 3 import re
 4 import urllib  //导入库
 5 
 6 def gethtml(url):
 7     page=urllib.urlopen(url)  //打开链接的页面
 8     html=page.read()  //读取链接的源码
 9     return html
10 
11 def getimg(html):
12     reg=rsrc="http://www.mamicode.com/(.*?\.jpg)" size‘ //正则
13     imgreg=re.compile(reg)  //编译正则
14     imglist=re.findall(reg,html)  //在源码中查找正则相对应的资源
15     return imglist  //返回
16         
17 html=gethtml("https://tieba.baidu.com/p/5001345607?red_tag=1020337473")
18 print getimg(html) //打印图片的链接地址

正则解释:

reg=r‘src="http://www.mamicode.com/(.*?\.jpg)" size‘
1.是匹配除换行符\n外的字符
2*是匹配前一个字符0次或n次
3+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复
4.*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复

下载贴吧内的图片

 1 #coding:utf-8
 2 import re
 3 import urllib
 4 
 5 def geturl(url):
 6     page=urllib.urlopen(url)
 7     html=page.read()
 8     return html
 9     
10 def getimg(html):
11     r1=rsrc="http://www.mamicode.com/(.*?\.jpg)"size
12     imgr1=re.compile(r1)
13     imglist=re.findall(imgr1,html)
14     x=0
15     for i in imglist:
16         urllib.urlretrieve(i,%s .jpg% x) //下载imglist中的图片,并命名为X.jpg
17         x=x+1
18     
19 html=geturl("https://tieba.baidu.com/p/5000970745?red_tag=2784248253")
20 getimg(html)

 

第一次爬虫练习