python使用正则表达式编写网页小爬虫

"""

文本处理是当下计算机处理的主要任务,从文本中找到某些有用的信息,

挖掘出某些信息是现在计算机程序大部分所做的工作。而python这中轻量型、小巧的语言包含了很多处理的函数库,

这些库的跨平台性能很好,可移植性能很强。

在Python中re模块提供了很多高级文本模式匹配的功能,以及相应的搜索替换对应字符串的功能。

"""

"""

正则表达式符号和特殊字符

re1|re2 -----> 匹配正则表达式的re1或者re2

. -----> 可以匹配任何字符,但是除了换行符之外

^ -----> 匹配字符创的开始 ^Dear

$ -----> 匹配字符串的结尾 /bin/*sh$

* -----> 匹配前面出现的正则表达式零次或者多次 [A-Za-z0-9]*

+ -----> 匹配前面出现的正则表达式一次或者多次 [A-Za-z0-9]+ [a-z]+\.com

? -----> 匹配前面出现的正则表达式零次或者一次 goo?

{N} -----> 匹配前面出现的正则表达式N次 [0-9]{N}

{M,N} -----> 匹配重复出现M次到N次的正则表达式 [0-9]{3,5}

[...] -----> 匹配字符组中出现的任意一个字符 [aeiou]

[...x-y...]-----> 匹配从字符x到y中的任意一个字符 [0-9],[A-Za-z]

[^...] -----> 不匹配此字符集中出现的任何一个字符,包括某个范围的字符 [^A-Za-z0-9_]

(*|+|?|{})? -----> 用于上面出现的任何"非贪婪版本"重复匹配的次数符号 .*?[a-z]

(...) -----> 匹配封闭括号中正则表达式(RE),并保存为字数组 ([0-9]{3})?,f(oo|u)bar

"""

import re
p=re.compile('ab*');
print p;
r1=r'\d{3,4}-?\d{8}';
print re.findall(r1,'010-12345678');
print re.findall(r1,'010-00000000');
r2=re.compile(r'[Cc][Ss][Vv][Tt]');
r3=re.compile(r'csvt',re.I);
print r3.findall('cSvT');
test_r=r'(abc/[0-9]{8,8}$)';
print re.findall(test_r,'abc/12345678');

"""

使用正则表达式进行一个网页爬虫

"""

headers={
    'Connection': 'Keep-Alive',
    'Accept': 'text/html, application/xhtml+xml, */*',
    'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko'
};

import urllib2

url='http://blog.csdn.net/berguiliu';

req=urllib2.Request(url);
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko');
Browser=urllib2.urlopen(req);
data = Browser.read();

re_blog_list=re.compile(r'href="(/berguiliu/article/details/[0-9]{8,8})">');
url_list=re.findall(re_blog_list,data);

import cookielib

def makeMyOpener(head):
    cj=cookielib.CookieJar();
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj));
    header=[]
    for key, value in head.items():
        elem=(key, value)
        header.append(elem)
    opener.addheaders=header;
    return opener

oper = makeMyOpener(headers);
uop = oper.open('http://www.baidu.com/', timeout = 1000);
data = uop.read();
print data;

import time;
for subUrl in url_list:
    new_Url='http://blog.csdn.net'+subUrl;
    print new_Url;
    oper = makeMyOpener(headers);
    uop = oper.open(new_Url, timeout = 1000);
    data = uop.read();
    time.sleep(3)

这个程序主要是通过抓取网页,分析一下网页信息,找到自己感兴趣的部分, 就可以找到其对应的信息,进行相应的操作!

时间: 2024-08-24 14:10:05

python使用正则表达式编写网页小爬虫的相关文章

Python网页小爬虫

最近右胳膊受伤,打了石膏在家休息.为了实现之前的想法,就用左手打字.写代码,查资料完成了这个资源小爬虫.网页爬虫, 最主要的是协议分析(必须要弄清楚自己的目的),另外就是要考虑对爬取的数据归类,存储.这是一个在线歌曲网站的爬虫,网站名 字就不说了,此贴目的是技术交流,请不用做其他用途! 相关技术点:http协议.js.AES.文件.文件夹操作.正则表达式.数据库技术.SQL -------------------------------------------分割线 以下 为设计思路------

python速成第二篇(小爬虫+文件操作+socket网络通信小例子+oop编程)

大家好,由于前天熬夜写完第一篇博客,然后昨天又是没休息好,昨天也就不想更新博客,就只是看了会资料就早点休息了,今天补上我这两天的所学,先记录一笔.我发现有时候我看的话会比较敷衍,而如果我写出来(无论写到笔记本中还是博客中,我都有不同的感觉)就会有不同的想法,我看书或者看资料有时候感觉就是有一种惰性,得过且过的感觉,有时候一个知识想不通道不明,想了一会儿,就会找借口给自己说这个知识不重要,不需要太纠结了,还是去看下一个吧,然后就如此往复下去,学习就会有漏洞,所以这更加坚定了我写博客来记录的想法.

java正则表达式之java小爬虫

这个java小爬虫, 功能很简单,只有一个,抓取网上的邮箱.用到了javaI/O,正则表达式. public static void main(String[] args) throws IOException { // TODO Auto-generated method stub // List<String> list= getEmail(); List<String> list= getEmailFromWeb(); for (String string : list) {

python python 入门学习之网页数据爬虫cnbeta文章保存

需求驱动学习的动力. 因为我们单位上不了外网所以读新闻是那么的痛苦,试着自己抓取网页保存下来,然后离线阅读.今天抓取的是cnbeta科技新闻,抓取地址是http://m.cnbeta.com/wap/index.htm?page=1,咱们需要抓取的是前5页就行了.代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- import urllib2,re,time,json import sys from bs4 import BeautifulSoup r

python python 入门学习之网页数据爬虫搜狐汽车数据库

自己从事的是汽车行业,所以首先要做的第一个程序是抓取搜狐汽车的销量数据库(http://db.auto.sohu.com/cxdata/): 数据库提供了07年至今的汽车月销量,每个车型对应一个xml数据,比如速腾的销量:http://db.auto.sohu.com/xml/sales/model/model1004sales.xml 现在需要做的是遍历所有车型,以这个格式保存 ‘车型----日期----销量’. #!/usr/bin/python # -*- coding: utf-8 -*

简单的网页小爬虫

var http = require('http');var Promise = require('bluebird'); // 第三方 Promises 模块var cheerio = require('cheerio');  // 爬虫分析模块var BufferHelper = require('bufferhelper'); // buffer 组装模块var iconv = require('iconv-lite'); // 字符转码模块 var baseUrl = 'http://w

用Python写了个简单小爬虫

1 #coding: utf-8 2 3 import requests,urllib2,urlparse,time,sys 4 from bs4 import BeautifulSoup 5 6 #获取百度url wd查询关键子 pn第几页 rn 每页多少条 最大50条 7 #getbaidu.py 关键字 爬取页数 每页数量 8 #getbaidu.py example 10 50 9 #百度特性 每页显示条数为10 20 30类型的整数 10 11 12 type = sys.getfil

python—文件的读写之小爬虫网站

1.导入相应的包 2.设置请求的网站.写入的文件以及内容. 3.运行结果 原文地址:https://www.cnblogs.com/xzxgiser/p/12543167.html

第五章 python中正则表达式的使用

第一节    正则表达式的一些介绍 1)掌握正则表达式的案例 2)写一个小爬虫 3)正则表达式(或RE)是一个小型的.高度专业化的编程语言,(在python中)它内嵌在python中,并通过re模块实现. - 可以为想要匹配的相应字符串集指定规则 - 该字符串集可能包含英文语句.e-mail地址.命令或任何你想搞定的东西 - 可以问诸如“这个字符串匹配该模式吗?” - “在这个字符串中是否有部分匹配该模式呢?” - 你也可以使用RE以各种方式来修改或分割字符串. 4)正则表达式模式被编译成一系列