`
tsface
  • 浏览: 9265 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

Python爬虫-爬取SAE论坛上的精华帖子

阅读更多

       其实是写Java的,但是最近学习Python,于是写了一个Python的简单脚本练手

       如何找到SAE上面所有的精华帖子,周末一个人无聊于是研究了一下python的urllib2,下面说下自己收集精华帖子的思路:
        1,发送相关模块的请求,生产html信息返回给本地
        2,处理html信息,找到可以标示精华帖子的html
        3,提取取出href熟悉和<a></a>标签包含的名称


        思路很简单,代码也不复杂,下面帖上自己的代码

#! /usr/bin/env python
#coding=utf-8
#Python 2.7 
#author:tsface  
#date:2014-04-20
#since:1.0


import urllib2
import time
import sys
import re

reload(sys)
sys.setdefaultencoding('utf-8')

#定义常量
BASE_PATH='http://cloudbbs.org/'
_URL='http://cloudbbs.org/forum.php?mod=forumdisplay'
headers ={'User_Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36'}
pageSize=30
FIDS=[41,37,39,40,51,52,57,58,60,63,64,65,54,46,62]


#定义一个用来函数用来读取当前页面的html文档
#since:1.0
def getHtml(url):
    realUrl = url
    consoleLog('request url: '+realUrl)
    req = urllib2.Request(realUrl,headers = headers)
    res = urllib2.urlopen(req)
    html = res.read().decode('utf-8').encode('gb2312','ignore');
    return html


#定义一个函数用来解析当前文档中的精华帖子的url,并且把帖子的类容存储到一个tuple中
def parseExcellentContent(html):
    if html:
        consoleLog('start parse DOM...')
        regDigest = '(<a[^>]*class="xst" >[\\d\\D]*?</a>)'
        #找到主题的正则表达是
        regContent ='(<th[^>]*class="[\\d\\D].*?">[\\d\\D]*?</th>)'
        contentList = re.findall(regContent,html,re.S)
        digestList=[]
        for item in contentList:
            #找到精华帖子
            _digest = re.findall('alt="digest"',item,re.S)
            if _digest:
                _digestContent=re.findall(regDigest,item,re.S)
                _href=re.findall('<a href="(.*?)"',_digestContent[0],re.S)
                _bbsName=re.findall('<a.*?>(.*?)</a>',_digestContent[0],re.S)
                digestList.append({"address":_href[0],"title":_bbsName[0]})
        consoleLog('parse successfully...')
        return digestList
        
    else:
        consoleLog('Nothing to parse')
    
#写信息到文件中
def writeInfo2File(fileName,info):
    _file=open(fileName,'w+')
    _file.write(info)
    _file.close()
    consoleLog(fileName+'has build...')
    
#定义日志函数    
def consoleLog(log):
    print '['+getCurrentFormatTime()+']'+log

#获取本地格式化的时间
def getCurrentFormatTime():
    return time.strftime("%Y-%m-%d %A %X %Z", time.localtime())


#定义替换特殊字符的函数
def replaceSpecial(_href):
    replacedUrl=_href
    replaceTab = [("&lt;","<"),("&gt",">"),("&amp;","&"),("&nbps;"," ")]
    for repl in replaceTab:
        replacedUrl=replacedUrl.replace(repl[0],repl[1])
    return replacedUrl

#获取SAE平台上的精华文章列表
def getSAEBBSExcellentInfo():
    info=""
    for fid in FIDS:
        reqUrl = _URL+'&fid='+str(fid)
        for i in range(1,pageSize+1):
            _sigleReqUrl=reqUrl+'&page='+str(i)
            print _sigleReqUrl
            objs = parseExcellentContent(getHtml(_sigleReqUrl))
            for obj in objs:
                info+=(BASE_PATH+replaceSpecial(obj['address']))+(" "*10)+obj['title']+'\n'
        info+=('='*50+str(fid)+'\n')
        writeInfo2File('test.txt',info)


#测试
startTime = time.time()
getSAEBBSExcellentInfo()
endTime = time.time()
consoleLog('the py spend '+str(endTime-startTime))
    
    
    

 

 

分享到:
评论

相关推荐

    python爬虫-爬取火车票.zip

    Python爬虫技术是数据获取的重要工具,特别是在网络信息丰富的今天,爬取火车票数据能帮助我们分析火车票的定价、余票、时段等信息。在这个项目中,我们将深入探讨如何利用Python实现火车票数据的爬取。 首先,我们...

    python爬虫-爬取豆瓣音乐

    Python爬虫技术是数据获取的重要工具,特别是在网络信息丰富的今天,爬取网页数据成为数据分析、研究和应用的基础。本教程将聚焦于如何使用Python来爬取豆瓣音乐的相关信息,这涵盖了网页结构分析、HTTP请求、解析...

    python爬虫-爬取豆瓣评分前250的电影信息

    python爬虫-爬取豆瓣评分前250的电影信息

    Python爬虫-爬取目标城市酒店数据

    通过python爬虫采集城市的酒店数据 内容概要:使用python采集酒店数据 适用人群:做酒店数据市场调研,数据分析报告的人群 使用场景及目标:需要依靠python3环境,执行爬虫脚本 其他说明:需要使用开发者工具捕捉...

    python爬虫,爬取贴吧

    python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧...

    python爬虫-爬取星巴克商品菜单

    python爬虫,爬取星巴克菜单商品所有图片以及名称

    Python 实例 - 爬取某网站评论 Python源码

    Python 实例 - 爬取某网站评论 Python源码Python 实例 - 爬取某网站评论 Python源码Python 实例 - 爬取某网站评论 Python源码Python 实例 - 爬取某网站评论 Python源码Python 实例 - 爬取某网站评论 Python源码...

    python爬虫-爬取ZARA男士数据

    爬取的内容是,ZARA Online(zaraproducts):商品...基于网络爬虫技术,爬取ZARA男士数据。ZARA男士数据被保存为三种形式(txt形式、csv形式和mysql数据库形式)。包含完整详细的爬虫流程、爬虫代码和代码说明解释等。

    Python爬虫 - 爬取新浪博客进行归档.zip

    本教程将详细讲解如何使用Python爬虫技术来爬取新浪博客并进行归档。 首先,我们需要了解Python爬虫的基础知识。Python作为一门强大的编程语言,因其简洁易读的语法和丰富的库支持,成为爬虫开发的首选。在爬虫领域...

    Python爬虫 - 爬取百度百科页面.zip

    在Python编程领域,爬虫是一种常见的技术,用于自动地从互联网上抓取数据。本教程主要聚焦于如何使用Python编写爬虫来爬取百度百科页面。百度百科是一个开放的在线百科全书,提供了丰富的信息,涵盖了各个领域的知识...

    Python爬虫 - 爬取 Instagram 一个博主所有图片视频.zip

    通过这个过程,我们可以实现Python爬虫自动收集Instagram上的特定用户内容,为数据分析和研究提供数据支持。但需要注意的是,爬虫操作必须遵守网站的使用协议,尊重数据隐私,合理合法地使用爬取的信息。

    python爬虫-爬取博客园博客信息(含源码)

    基于python语言开发、scrapy框架实现的博客园首页博客爬取项目 1、使用命令行创建项目 2、定义爬取的内容、标题 import scrapy class CnblogItem(scrapy.Item): title = scrapy.Field() #定义爬取的标题 link...

    python爬虫-爬取大众点评中所有评论、评分、图片信息(含源码)

    爬取过程的字典库需要两个条件,字库所对应的坐标与字典的svg矢量图的位置。然后对网站评论隐藏内容于字典库中的数据替换。解析所需要构造的内容如:头像、用户、标签、评论内容、图片、评分等。然后保存到txt或者...

    python爬虫--爬取百度百科字条python2和python3版本

    一个实战性项目,python入门 爬取百度百科python词条相关的1000个词条 也可以直接在我的博客里面查看:http://blog.csdn.net/qiqiyingse/article/details/51798833 解压密码:123 主要是之前写的内容因为百度百科的...

    课程设计-python爬虫-爬取日报,爬取日报文章后存储到本地,附带源代码+课程设计报告

    本程序需要在 python 下,并且需要下载程序依赖的包才能运行。本程序需要用到的包主 要有:requests、bs4、os、datetime。 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,...

    初始python爬虫-爬取彼岸图单张到全部图片(csdn)————程序.pdf

    这篇教程主要介绍了如何使用Python爬虫来下载彼岸图网站上的图片,从单张图片的爬取到整页图片的批量下载。 首先,我们需要了解基本的爬虫流程。在Python中,最常用的库之一是`requests`,用于发送HTTP请求;另一个...

    python爬虫糗事百科

    python爬虫,爬取糗事百科python爬虫,爬取糗事百科python爬虫,爬取糗事百科python爬虫,爬取糗事百科python爬虫,爬取糗事百科python爬虫,爬取糗事百科python爬虫,爬取糗事百科python爬虫,爬取糗事百科python...

    Python-爬虫-爬取二手房数据-scrapy+IP代理池

    运用scrapy与ip代理池相结合,对二手房信息进行数据爬取,能提高爬虫爬取的效率

    python爬虫之爬取百度云源代码.7z

    这篇文章主要介绍了python爬虫之爬取百度云源代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。这篇文章主要介绍了python爬虫之爬取百度云源代码实例,...

    python爬虫之爬取QQSpider源代码.7z

    这篇文章主要介绍了python爬虫之爬取QQSpider源代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。这篇文章主要介绍了python爬虫之爬取QQSpider源代码...

Global site tag (gtag.js) - Google Analytics