基于Python的DBLP数据库爬虫系统

来源:互联网 发布:淘宝模版制作 编辑:程序博客网 时间:2024/06/07 02:02

要写个爬虫爬些数据,以前没写过爬虫,网上查下Python挺方便的,花了一晚上把Python入了个门就开始写了,写篇博客记录下这个过程。


1.     功能需求看下图:  


2.     设计说明

本系统的编程语言为Python,Python通过MySQLdb来连接数据库并进行各项操作,通过spynner库来解决动态加载的页面,spynner依赖pyqt,pyqt依赖sip。

数据库的E-R图设计如下(偷个懒,,不用Visio了。。):


爬虫主要是通过Python的urllib2,re模块实现。

其中urllib2主要用于用于网页的获取,re主要是通过正则表达式进行网页信息的处理。

Mysql数据库主要是通过Navicat来显示,并实现增删改。

因为这个网站链接命名其实连接挺有规律的,所以采用DFS进行遍历,用户只需输入会议名称,爬虫自动爬取相应会议的论文的相关数据。

后期数据可视化处理采用matlab了,因为相对比较熟。。。


3.     软件源代码

还是不给了。。

4.源代码分析报告

用urllib2获取网页,然后结合网页的具体内容通过相应的正则表达式进行信息的筛选,如果碰到动态加载的页面,通过spynner进行处理,然后把相应的数据存入Mysql数据库即可。

5.测试报告

经过对一定量的信息与原网页的信息进行对比,抓取信息的准确度还不错。在Navicat中也可以正常的对数据库进行增删改操作。

6.用户手册

运行程序即可抓取相应网页的信息即可。对数据库的具体管理可通过Navicat进行。

7.

存在问题:
我的这个系统数据库的设计不太合理,存在数据库冗余,进行某些增删改的时候可能会出现数据不同步的情况。
爬虫部分因为没使用相应的爬虫框架,所以不太稳定,有时会失败,而且在进行大量数据的爬取时,耗时较长。

8.遇到问题:
有些页面是通过JS动态加载出来的,查到一个库可以解决,然而这个库在Windows下装各种依赖库简直是灾难(Spynner->Pyqt->Sip),后来转移到Linux下还是捣鼓了半天才解决。

还有有个别正则表达式也挺麻烦的。







2 0
原创粉丝点击