应课程实验要求,要写一个基于人人网的简单爬虫。实验要求如下:

学会使用一种编程语言实现爬取人人网关系网络的程序。该程序功能如下:

1.  能够输入用户登陆所产生的cookie,允许爬虫对人人网进行爬取网页。

2.  能够使用正则表达式对所获取的网页内容进行过滤,提取出所需要的重要信息。

3.  能够分析所获得信息,得到社交网络中各个个体之间的好友关系。

4.  能够将该关系矩阵导入到matlab中,以供数据分析使用。

本文主要针对正则表达式进行介绍。(摘自百度百科)

一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。

正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。

在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符,它可以匹配"testing"和"123testing"等字符串,但是不能匹配"Testing"。

正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。

下面介绍常用的正则表达式(摘自http://lifesinger.3322.org/myblog/?p=185):

匹配中文字符的正则表达式: [/u4e00-/u9fa5]
   评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^/x00-/xff]

评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:/n/s*/r
评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(/S*?)[^>]*>.*?<//1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^/s*|/s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^/s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:/d{3}-/d{8}|/d{4}-/d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]/d{5}(?!/d)
评注:中国邮政编码为6位数字

匹配身份证:/d{15}|/d{18}
评注:中国的身份证为15位或18位

匹配ip地址:/d+/./d+/./d+/./d+
评注:提取ip地址时有用

匹配特定数字:
^[1-9]/d*$    //匹配正整数
^-[1-9]/d*$   //匹配负整数
^-?[1-9]/d*$   //匹配整数
^[1-9]/d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]/d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]/d*/./d*|0/./d*[1-9]/d*$   //匹配正浮点数
^-([1-9]/d*/./d*|0/./d*[1-9]/d*)$  //匹配负浮点数
^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)$  //匹配浮点数
^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^/w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式

基于人人网的简单爬虫(一)——正则表达式相关推荐

  1. 基于人人网的简单爬虫(二)——具体实现

    该程序分为三个部分:获取人人网登陆权限.爬取所需要的好友信息和分析好友关系.下面对这三个部分的设计思路进行阐述. (1)获取人人网登陆权限 设计的核心思想是:将登陆所需要的cookie放在程序中,使得 ...

  2. Java实例——基于jsoup的简单爬虫实现(从智联获取工作信息)

    这几天在学习Java解析xml,突然想到Dom能不能解析html,结果试了半天行不通,然后就去查了一些资料,发现很多人都在用Jsoup解析html文件,然后研究了一下,写了一个简单的实例,感觉还有很多 ...

  3. 基于pycharm的简单爬虫

    爬取的是豆瓣书籍top250的所有书籍信息和图片,然后做了一个小小的功能界面 首先用到的一些库,其中sys和os不用下系统自带,其他都需要自己下 from PyQt5 import QtCore, Q ...

  4. 基于Java实现简单亚马逊爬虫

    前言:最近博主买了台Kindle,感觉亚马逊上的图书资源质量挺好,还时不时地会有价格低但质量高的书出售,但限于亚马逊并没有很好的优惠提醒功能,自己天天盯着又很累.于是,我自己写了一个基于Java的亚马 ...

  5. java爬虫之基于httpclient的简单Demo(二)

    转载自 java爬虫之基于httpclient的简单Demo(二) 延续demo1的 java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一),demo2出炉啦,大家想学爬虫都可以从这 ...

  6. requests库+正则表达式--简单爬虫实例--美女图片篇

    正则表达式–简单爬虫实例–4K美女篇 文章目录 section1:声明 section2:下载链接分析 section3:代码编写 1.导入板块 2.构造请求 3.正则表达式的构造 4.数据处理 5. ...

  7. python 系列 03 - 基于scrapy框架的简单爬虫

    文章目录 1. scrapy介绍 2 新建爬虫项目 3 新建蜘蛛文件 4 运行爬虫 5 爬取内容 5.1分析网页结构 5.2 关于Xpath解析 5.3 接着解析电影数据 5.4 下载缩略图 5.5 ...

  8. python网络爬虫_python小知识,基于Python 的网络爬虫技术分析

    在现阶段大数据的时代中,想要实现对数据的获取和分析,要先具备足够的数据源,网络爬虫技术就为其数据获取提供了良好的条件,且还能够实现对数据源的目的性采集. 在网络爬虫技术应用中,Python 脚本语言的 ...

  9. 简单NLP分析套路(1)----语料库积累之3种简单爬虫方式应对大部分网站

    目录 近期听课的思考 语料库的记录 3种爬虫 urllib.request + BeautifulSoup scrapy 与xpath 使用selenium 模拟浏览器行为 新的改变 相关链接 未完待 ...

最新文章

  1. Eclipse中安装插件时提示:No repository found containing: osgi.bundle,org.eclipse.emf,2.8.0.v20180706-1146
  2. 六十八、快速幂算法、牛顿迭代法、累加数组+二分查找的变形
  3. servlet上传文件接收工具
  4. 联通g网java业务的是什么_联通发力G网增值业务
  5. iOS 14.5来了!除了新功能,苹果还要让用户掌控自己的隐私数据
  6. 一台弹性云服务器可以挂载多块磁盘吗?
  7. iOS捕获异常的处理
  8. SPSS时序全局主成分分析方法
  9. 转录组测序分析项目及方法汇总(更新中)
  10. OpenSSL自建CA和颁发SSL证书
  11. XSS过滤绕过总结_xss绕过字符过滤
  12. 初中数学题目(勾股定理) - 第一小题解答
  13. mysql数据库基本操作指令:附图
  14. 将正负值分别显示的函数
  15. 如何使用Grafana轻松实现OVL数据可视化
  16. 2021年浙江工商大学新生赛题解
  17. 用php造了一个地址自动识别功能
  18. Unity5 0 天空盒 CubeMap
  19. 分治法求循环赛日程表
  20. 复读机java群管脚本_JS让浏览器实现复读机的功能_js

热门文章

  1. 帝国理工:如何用 AI 解决 80% 专科医生担忧的心律装置移植手术难题
  2. SVN clean失败解决方法
  3. 《电子元器件的可靠性》——第1章概述
  4. Lync 小技巧-56-检查你用的公网证书是否正确
  5. POJ3342 Party at Hali-Bula(树型DP求最大独立集+唯一解判断)
  6. freemaker转word xml注意事项
  7. 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面.
  8. asp.net文本编辑器FCKeditor使用方法详解 - 橙色大地 - 博客园
  9. DWZUI(1.3)框架中遇到的两个问题
  10. ===,!==,==,!=的使用