正则表达式应用的举例
2017-10-23 16:46
771 查看
正则表达式应用的举例
灵活使用findall与search
html文件:
输出:
极客学院爬虫测试
http://jikexueyuan.com/welcom.html http://jikexueyuan.com/1.html http://jikexueyuan.com/2.html http://jikexueyuan.com/3.html
这是第一条
这是第二条
这是第三条
http://www.jikexueyuan.com/course/android/?pageNum=2 http://www.jikexueyuan.com/course/android/?pageNum=3 http://www.jikexueyuan.com/course/android/?pageNum=4 http://www.jikexueyuan.com/course/android/?pageNum=5 http://www.jikexueyuan.com/course/android/?pageNum=6 http://www.jikexueyuan.com/course/android/?pageNum=7 http://www.jikexueyuan.com/course/android/?pageNum=8 http://www.jikexueyuan.com/course/android/?pageNum=9 http://www.jikexueyuan.com/course/android/?pageNum=10 http://www.jikexueyuan.com/course/android/?pageNum=11 http://www.jikexueyuan.com/course/android/?pageNum=12 http://www.jikexueyuan.com/course/android/?pageNum=13 http://www.jikexueyuan.com/course/android/?pageNum=14 http://www.jikexueyuan.com/course/android/?pageNum=15 http://www.jikexueyuan.com/course/android/?pageNum=16 http://www.jikexueyuan.com/course/android/?pageNum=17 http://www.jikexueyuan.com/course/android/?pageNum=18 http://www.jikexueyuan.com/course/android/?pageNum=19 http://www.jikexueyuan.com/course/android/?pageNum=20
Process finished with exit code 0
灵活使用findall与search
#coding=utf-8 #导入re库文件 import re old_url='http://www.jikexueyuan.com/course/android/?pageNum=2' total_page=20 f=open('test.html','r') html=f.read() f.close() #爬取标题 #在确定寻找的内容只有一个的时候,search的效率要比findall高 title=re.search('<title>(.*?)</title>',html,re.S).group(1) print title #爬取链接 links=re.findall('href="(.*?)"',html,re.S) for each in links: print each #爬取部分文字,先大再小 text_fied=re.findall('<ul>(.*?)</ul>',html,re.S)[0] the_text=re.findall('">(.*?)</a>',text_fied,re.S) for every_text in the_text: print every_text #sub实现翻页 for i in range(2,total_page+1): new_link=re.sub('pageNum=\d+','pageNum=%d'%i,old_url,re.S) print new_link
html文件:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>极客学院爬虫测试</title> </head> <body> <div class="topic"><a href="http://jikexueyuan.com/welcom.html">欢迎参加《Python定向爬虫入门》</a> <div class="list"> <ul> <li><a href="http://jikexueyuan.com/1.html">这是第一条</a></li> <li><a href="http://jikexueyuan.com/2.html">这是第二条</a></li> <li><a href="http://jikexueyuan.com/3.html">这是第三条</a></li> </ul> </div> </div> </body> </html>
输出:
极客学院爬虫测试
http://jikexueyuan.com/welcom.html http://jikexueyuan.com/1.html http://jikexueyuan.com/2.html http://jikexueyuan.com/3.html
这是第一条
这是第二条
这是第三条
http://www.jikexueyuan.com/course/android/?pageNum=2 http://www.jikexueyuan.com/course/android/?pageNum=3 http://www.jikexueyuan.com/course/android/?pageNum=4 http://www.jikexueyuan.com/course/android/?pageNum=5 http://www.jikexueyuan.com/course/android/?pageNum=6 http://www.jikexueyuan.com/course/android/?pageNum=7 http://www.jikexueyuan.com/course/android/?pageNum=8 http://www.jikexueyuan.com/course/android/?pageNum=9 http://www.jikexueyuan.com/course/android/?pageNum=10 http://www.jikexueyuan.com/course/android/?pageNum=11 http://www.jikexueyuan.com/course/android/?pageNum=12 http://www.jikexueyuan.com/course/android/?pageNum=13 http://www.jikexueyuan.com/course/android/?pageNum=14 http://www.jikexueyuan.com/course/android/?pageNum=15 http://www.jikexueyuan.com/course/android/?pageNum=16 http://www.jikexueyuan.com/course/android/?pageNum=17 http://www.jikexueyuan.com/course/android/?pageNum=18 http://www.jikexueyuan.com/course/android/?pageNum=19 http://www.jikexueyuan.com/course/android/?pageNum=20
Process finished with exit code 0
相关文章推荐
- Python 正则表达式高级应用举例
- 正则表达式的常用方法和属性以及应用举例
- 简单入门正则表达式 - 第十章 正则表达式综合应用举例
- Linux中自带正则表达式应用举例
- .NET下正则表达式应用的四个示例
- 第21章 JavaScript正则表达式应用
- editplus查找替换的正则表达式应用
- Linux系统编程(18)——正则表达式实用举例
- 正则表达式在Oracle10g中的应用-REGEXP
- C#—异常应用(正则表达式)
- QTP的那些事--描述性编程和正则表达式的应用(转陈能技老师博客)
- 替换图片地址正则表达式应用
- 应用正则表达式验证用户注册信息(下)
- asp.net 正则表达式的应用
- Django——正则表达式的举例与基本语法
- sed 与正则表达式组合应用(一)
- [收藏] 正则表达式的入门与应用,1~4篇!grep/sed/perl/awk
- JMeter应用小知识--正则表达式
- 正则表达式代码格式化应用(不定期更新)