python小程序----简单的爬虫


网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。(From 百度百科)


python有强大的类库,用来写爬虫是很不错的。

这个程序是最简单的爬虫程序,不用登陆,没有js等,只是单纯地把网页抓下来,然后用正则表达式筛选出我感兴趣的数据。


这个爬虫程序主要是在一个论坛上面爬一些我感兴趣的帖子的链接,然后我将这个程序应用在之前做的那个blog上面,这样就不用浪费时间去那个BBS上面看完所有帖子,可以通过自己的blog浏览自己感兴趣的帖子。


========================================================================

1.我选取的论坛是一个dota2的论坛(http://bbs.sgamer.com/forum-44-1.html)。

用chrome或者其他的浏览器打开网页,然后看到该网页的代码。

\

这是用urllib2抓下来的html代码的一部分,这里我抓了10页的数据:

for i in range(1, 11):
  html = urllib2.urlopen(url % (i)).read()

2.观察你想抓的数据段的html代码的特征,用正则表达式筛选出来。比如我需要的是帖子的超链接和帖子的题目,就用下面代码筛选:

search = r' (.*?maybe.*?)'
regex = re.compile(search, re.I)
..

for s in regex.findall(html):
    sg.append(s)

3.得到的sg就是最后的结果。

所有代码也就几行:

#-*- coding:utf-8 -*-
import re
import urllib2

url = "http://bbs.sgamer.com/forum-44-%d.html"
sg = []

search = r' (.*?maybe.*?)'
regex = re.compile(search, re.I)

for i in range(1, 11):
  html = urllib2.urlopen(url % (i)).read()

  for s in regex.findall(html):
    sg.append(s)

for s in sg:
  print s[0], s[1]

===============================================================

完成这个后,就可以添加到blog去。再加上django的缓存功能,不然每次访问都爬一次太费时间。

最后是成果图,我爬的是一个我喜欢的玩家的相关帖子微笑


相关内容

    暂无相关文章

评论关闭