python 爬虫入门之正则表达式 一

python  正则表达式知识点

正则 常用符号

. : 匹配任意字符,换行符除外

* : 匹配前一个字符 0 次或者无限次

? : 匹配前一个字符 0次或者1次

.* : 贪心算法

.*? :非贪心算法

(): 括号内的数据作为结果返回

正则常用方法:

findall: 匹配所有符合规律的内容,返回包含结果的列表

Search: 匹配并提取第一个符合规律的内容,返回一个正则表达式对象

Sub: 替换符合规律的内容,返回替换后的值

正则表达式的基本应用 ,使用正则表达式过滤一个简单的test文件

test 文件如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>极客学院爬虫测试</title>
</head>
<body>
<div> <a href="http://www.jikexueyuan.com/welcome.html"></a>《python定向爬虫入门》
<div>
<ul>
    <li><a href="http://www.jikexueyuan.com/1.html">这是第一条</a></li>
    <li><a href="http://www.jikexueyuan.com/2.html">这是第二条</a></li>
    <li><a href="http://www.jikexueyuan.com/3.html">这是第三条</a></li>
    <li><a href="http://www.jikexueyuan.com/4.html">这是第四条</a></li>
</ul>
</div>
</div>
</body>
</html>

正则使用效果如下

#coding:utf-8
import re
old_url='http://www.jikexueyuan.com/course/web/?pageNum=2'
total_page=13
f = open('t1.txt','r',encoding="utf-8")
html = f.read()
f.close()

#爬取标题
title = re.search('<title>(.*?)</title>',html,re.S).group(1)#使用search 找到所需要的内容,就返回
print(title)

执行代码,显示如下

极客学院爬虫测试

#爬取链接
links = re.findall('href="(.*?)"',html,re.S)
print(links)

执行代码,显示如下
 ['http://www.jikexueyuan.com/welcome.html', 'http://www.jikexueyuan.com/1.html', 'http://www.jikexueyuan.com/2.html', 'http://www.jikexueyuan.com/3.html', 'http://www.jikexueyuan.com/4.html']                              
 #提取文字
text_filed = re.findall('<ul>(.*?)</ul>',html,re.S)[0]
print(text_filed)
print("===============================")
the_text = re.findall('">(.*?)</a>',text_filed,re.S)
for every_text in the_text:
    print(every_text)             
    
执行代码,显示如下 
这是第一条
这是第二条
这是第三条
这是第四条   

#sub 实现翻页功能  
for i in range(7,total_page+1):
    new_link = re.sub('pageNum=\d+','pageNum=%d' %i,old_url,re.S)
    print(new_link)  
  
 执行代码,显示如下
http://www.jikexueyuan.com/course/web/?pageNum=7
http://www.jikexueyuan.com/course/web/?pageNum=8
http://www.jikexueyuan.com/course/web/?pageNum=9
http://www.jikexueyuan.com/course/web/?pageNum=10
http://www.jikexueyuan.com/course/web/?pageNum=11
http://www.jikexueyuan.com/course/web/?pageNum=12
http://www.jikexueyuan.com/course/web/?pageNum=13

原文地址:http://blog.51cto.com/sdsca/2057772

时间: 2024-11-06 13:43:23

python 爬虫入门之正则表达式 一的相关文章

Python爬虫入门之正则表达式

在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. 正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我

Python爬虫入门七之正则表达式

在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. 正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我

转 Python爬虫入门七之正则表达式

静觅 » Python爬虫入门七之正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就易如反掌了. 正则表达式的大致匹配过程是:1.依次拿出表达式和文本中的字符比较,2.如果每一个

Python爬虫入门六之Cookie的使用

大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了. 在此之前呢,我们必须先介绍一个opener的概念. 1.Opener 当你获取一个

(原)python爬虫入门(2)---排序爬取的辽宁科技大学热点新闻

发现科大网页的源码中还有文章的点击率,何不做一个文章点击率的降序排行.简单,前面入门(1)基本已经完成我们所要的功能了,本篇我们仅仅需要添加:一个通过正则获取文章点击率的数字:再加一个根据该数字的插入排序.ok,大功告成! 简单说一下本文插入排序的第一个循环,找到列表中最大的数,放到列表 0 的位置做观察哨. 上代码: # -*- coding: utf-8 -*- # 程序:爬取点击排名前十的科大热点新闻 # 版本:0.1 # 时间:2014.06.30 # 语言:python 2.7 #--

转 Python爬虫入门一之综述

转自: http://cuiqingcai.com/927.html 静觅 » Python爬虫入门一之综述 首先爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 要学习Python爬虫,我们要学习的共有以下几点: Python基础知识 Python中urllib和urllib2库的用法 Python正则表达式 Python爬虫框架Scrapy Python爬虫更高级的功能 1.Pyth

1.Python爬虫入门一之综述

要学习Python爬虫,我们要学习的共有以下几点: Python基础知识 Python中urllib和urllib2库的用法 Python正则表达式 Python爬虫框架Scrapy Python爬虫更高级的功能 1.Python基础学习 首先,我们要用Python写爬虫,肯定要了解Python的基础吧,万丈高楼平地起,不能忘啦那地基,哈哈,那么我就分享一下自己曾经看过的一些Python教程,小伙伴们可以作为参考. 1) 慕课网Python教程 曾经有一些基础的语法是在慕课网上看的,上面附有一些

(原)爬取辽宁科技大学相关新闻---python爬虫入门

有人说大部分python程序员都是通过爬虫入门的或者都是由爬虫喜欢上python的.还有大部分人学爬虫都喜欢拿自己学校的网站练手.我就是基于以上两点开始的... ok,开始,首先你需要一点python基础,一点点基础就可以,找一本薄薄的书过一遍,可以上这来找找 http://wiki.woodpecker.org.cn/moin/PyBooks 看书不爽,那你上这来看看,几道简简单单的题做过之后,顿觉一览众山小 http://www.pythontutor.com/ 咱们不是一边学爬虫,一边学p

Python爬虫入门教程:博客园首页推荐博客排行的秘密

1. 前言 虽然博客园注册已经有五年多了,但是最近才正式开始在这里写博客.(进了博客园才知道这里面个个都是人才,说话又好听,超喜欢这里...)但是由于写的内容都是软件测试相关,热度一直不是很高.看到首页的推荐博客排行时,心里痒痒的,想想看看这些大佬究竟是写了什么文章这么受欢迎,可以被推荐.所以用Python抓取了这100位推荐博客,简单分析了每个博客的文章分类,阅读排行榜,评论排行榜及推荐排行榜,最后统计汇总并生成词云.正好这也算是一篇非常好的Python爬虫入门教程了. 2. 环境准备 2.1