没有具体的商务数据怎么办?那就自己yy数据吧,不能从数据库中获得的数据。就自己去下载吧,也可以用爬虫去爬。
发现对论坛数据进行挖掘是一个比较有趣的东西。 因为现在可以接触到很多的论坛,数据的获取应该不是很大问题了。关键在于如何yy出一套模型。如挖掘简单的统计量,到进入更深层的挖掘,及建立完备的模型。呵呵,终于找到目标了。
数据挖掘和统计之间是什么关系?
很多信息隐藏在大量的数据之中,通过统计,就可以发现很多规律,这个叫数据挖掘吗? 虽然找到了很多规律,但是并没有使用那些所谓高深的数据挖掘算法,如贝叶斯、神经网络、决策树、隐马尔科夫、SVM、核方法等。那么这还是数据挖掘吗?
构造贝叶斯分类器,对用户进行分类。判断他们对于哪类话题比较感兴趣?
统计量:
论坛活跃人数: 31207 考虑到网站随时在更新,统计的结果只能是某个时候的快照。
晕了,到底有多少用户啊。花了一个下午重新抓了一遍,活跃人数怎么变成31937了? 而实际上论坛自身的统计显示这两天新增的用户不超过20个,这是这么回事,人数多出了700多? (对下载下来的页面再进行分析?)
对下载到本地的文件进行分析
8449 共8449个页面,数据量为318M。提取链接,分析用户数,整个计算过程,花费的时间是1分钟。
Sat Aug 01 17:42:06 2009
Sat Aug 01 17:43:02 2009
两次统计出人数有差异的原因已经找到。 因为我统计的并不是论坛所有的注册人数。而是参与发起帖子的所有用户数。
今日贴数:14661 // 今日的新帖子是14661,还有很多新的主题,参与发表主题的人数比原来多了700多人。这个是很自然的事情了。
用户列表下载中发现有重复ID的问题(爬取网站,需要对网站页面的生成和链接参数的意义有一些了解,即使开始不了解,为了爬下来资料的完备性和有效性,也是要了解链接参数意义的) userlist.asp?page=xx&order_method=xx,发现如果不带order_method参数,各个分页是可以访问的,但是每次刷新,返回的是不同结果?这个是怎么回事?没有使用数据库的排序? 发现,当order_method设置为7时,是以排序结果返回的,每次刷新不会影响页面结果,这个才是我想要的效果啊。。。
但是有3个页面,不知道为何不能得到结果,总是显示内部服务器错误,返回的错误码是 HTTP 500.
这三个页面分别是:1309、1931和2571。 暂时还不知道究竟是什么问题。。。
下载根据ID下载用户信息页面,ID数和页面数目终于对应起来了。
52409个文件已经下到。下载过程中的出错率,并不是很高,呵呵
success/failure: 52409/4750,成功率是78%
搞了真正一个晚上8.3的cookie问题,因为某个论坛的下载一定要用到cookie。并且起先还需要在页面上做登陆操作。按着网上的教程,试了n次,终于还是不行。到了4点半的时候,看到有一个会话Session和持久Session的概念。其实,我正要爬的网站用的是会话Cookie,浏览器关闭,就必须重新登录了。这个Cookie不是放在什么FileCookie等中间,是直接放在head中的。这个操作涉及的面还是挺广的,有httplib, cookielib。
不错啊,这个小网站,居然还有防爬虫的机制。我下了不到20个页面,就要验证本人是否是机器人了。
呵呵,伪装术之后应该也很重要了。以前看到过,可以把爬虫做到Firefox中,服务器没法分别是否是客户浏览。
当然,判别爬虫的方法有多种,方式和实现都可以加以了解的。大致对恶意爬虫的检测列举一些自己能想到的东西吧(防范是之后要考虑的)
1、连接频度
2、下载流量
3、访问模式(是否所有链接都点,或点击链接完全是按一种固定模式进行的。如遍历某些参数。。。)
下载另一个网站的数据。这个网站可以通过两种方式访问。即telnet和Web两种方式访问。
下载页面Index,即分页目录,而不是文件内容。通过对里面的链接进行解析,发现了之前一直不知道的秘密。(在telnet里面不能显示的一些文章,在Web下都露出了原形,虽然也是不能点击进去的(只是表明该文章已经被水了,并没有点击的链接))。
而且这种链接所占的比例还不低。 good: deplicated = 5003:550, 过时文章所占的比例有9.904%,可见比例不低,呵呵
这姑且也算是挖掘吧,总算挖出一些之前所不知道的知识:)
下载格式
下载网页文件的存储格式为: (board_id)_(page).html // 虽然最初是动态页面,但是这里存成了html页面