信息度的分类提取策略-------基于python(网络爬虫)
来源:互联网 发布:ceic中国经济数据库 编辑:程序博客网 时间:2024/05/29 16:30
考虑到各个网页的复杂性,以及标签的多层嵌套性,我打算提出一个策略,那就是:基于类型网站的分类提取策略。具体如下:门户网站就是提取title与meta之间的正文内容放到数据库,非门户网站,则直接提取标签<p></p>或<br></br>之间的内容。当然就优先来讲,<p>>><br>为什么会用此策略呢。。原因很简单,分析了一些网页后,发现一些非门户网站的主题内容不是放在<p></p>标签之间就是<br><br>之间,所以,分析此网站的主题内容,只要提取该部分就行了。当然提取结果会相应放在数据库里面,不过这部分内容仅仅作为显示以及用户关键字搜索用到。其他用到的正则表达式方面呢。?我想了一下,我们数据库的数据不能一整块一整块地放,最好是分开放,分类放。所以,电话,邮编,邮件地址等等方面要提取,因此我们需要对原文件进行多次匹配。所以,这就涉及到效率的问题了,匹配太多,效率低。根据,网页信息的最大化匹配,我只选择了几种匹配模式,除了上面四种,当然还有电话
name=re.findall(r’ /d{4}-/d{7}|/d{3}-/d{8}’,html,re.I)
邮件地址:name=re.findall(r’ /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*’,html,re.I)
至于其他的如QQ或者邮编之类的,因为存在歧义,也就不提取了。
综合测试:
import urllib2
import re
import datetime
import time
ty=datetime.datetime
def test():
h=urllib2.urlopen("http://www.nowpei.com/q/webdt/p/b05fc8ff-c3a9-4fa2-8bb6-ce5193dff2a9")
html=h.read()
x=ty.now()
name=re.findall(r'<p>[^</p>]*',html,re.I)
for j in name:
print j
name=re.findall(r'<title>[^</title>]*',html,re.I)
for j in name:
print j
name=re.findall(r'<meta[^/>]*',html,re.I)
for j in name:
print j
name=re.findall(r' /d{4}-/d{7}|/d{3}-/d{8}',html,re.I)
for j in name:
print j
name=re.findall(r'/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*',html,re.I)
for j in name:
print j
y=ty.now()
z=y-x
print z
test()
结果如下:
<p>&nbs
0511-4405222
021-87888822
0:00:00.766000
因篇幅问题略去了前面的搜索结果,测试了一下时间基本在0.6~0.8秒之间完成,页面大小为79,687 字节,从需求上讲基本能符合爬虫的搜索速度要求,而且又最大化地提取了网页的信息。至于数据库方面,加多几个字段供相应信息的存储。
- 信息度的分类提取策略-------基于python(网络爬虫)
- Python网络爬虫与信息提取-Day7-基于bs4库的HTML内容遍历方法
- Python网络爬虫与信息提取-Day8-基于bs4库的HTML格式输出
- Python网络爬虫与信息提取(一)
- python网络爬虫笔记之信息提取
- Python网络爬虫与信息提取 网络爬虫之规则
- python爬虫信息提取的一般方法
- Python网络爬虫与信息提取(二):网络爬虫之提取
- Python网络爬虫与信息提取(二):网络爬虫之提取
- 【MOOC】Python网络爬虫与信息提取-北京理工大学-part 1
- 【MOOC】Python网络爬虫与信息提取-北京理工大学-part 2
- 【MOOC】Python网络爬虫与信息提取-北京理工大学-part 3
- 【MOOC】Python网络爬虫与信息提取-北京理工大学-part 4
- j记录学习--python网络爬虫与信息提取
- Python网络爬虫与信息提取(中国大学mooc)
- Python网络爬虫和信息提取(一)
- [mooc]python网络爬虫与信息提取(实例一)
- Python网络爬虫与信息提取-Day6-Beautiful Soup库
- 64位Windows 移植须知
- Java 读取 MySQL 中文 乱码
- 固定td的长度,在输入超过长度时自动换行
- 用Delphi实现关闭重启本地网络连接
- struts2 拦截器 interceptor
- 信息度的分类提取策略-------基于python(网络爬虫)
- mysql的集群配置
- 提示补全组件:Kissy Suggest
- SEO优化如何锚文本链接
- Delphi对Access文件加密
- asp.net URL 重写引擎
- PreparedStatement.setDate添加时间
- JavaScript 去出字符串中的空格
- 博士后和民工的区别