`
sdu_wizard
  • 浏览: 99773 次
  • 性别: Icon_minigender_1
  • 来自: 亚特兰蒂斯
社区版块
存档分类
最新评论

Python抓取百度热搜词

阅读更多
最近在学习python,就写了个很简单的抓取百度热搜词的小代码。

百度新闻页面(http://news.baidu.com/)上的百度热搜词部分的html是这个样子的

<a href="http://news.baidu.com/ns?cl=3&ct=9&rn=20&sp=hotquery&word=%C1%F5%CF%E8%20%BB%D8%B9%FA" target="_blank" mon="ct=1&a=30">刘翔回国</a>

直接用正则进行匹配抽取比较困难,于是用了python自带的SGMLParser,但是感觉不是很好用,不知道python有没有可以处理dom文档的好用的模块,寻找中...

上代码吧:

# -*- coding: UTF-8 -*-

import urllib2
from sgmllib import SGMLParser

#继承自SGMLParser,用于抽取新闻热搜词的类
class HotExtract(SGMLParser):
    
    '''
    20120814
         经分析,百度新闻热搜词的dom结构是下边这个样子的
    <a href="http://news.baidu.com/ns?cl=3&ct=9&rn=20&sp=hotquery&word=%C1%F5%CF%E8%20%BB%D8%B9%FA" target="_blank" mon="ct=1&a=30">刘翔回国</a>
         于是按<a>标签抽取,属性mon的值等于“ct=1&a=30”时判定为新闻热搜词标签
    '''
    def __init__(self):
        SGMLParser.__init__(self)
        self.is_a = ""
        self.hot = []
        
    def start_a(self, attrs):
        if len(attrs) == 0:
            pass
        else:
            for (variable, value) in attrs:
                if variable == "mon" and value == "ct=1&a=30":
                    self.is_a = 1
                    break
                
    def end_a(self):
        self.is_a = ""
        
    def handle_data(self, text):
        if self.is_a == 1:
            self.hot.append(text) 

#抓取html内容
def getHtml(url):
    html = urllib2.urlopen(url).read()
    return html

#抽取特定html标签中的内容(此处为抽取属性mon等于“ct=1&a=30”的a标签的text),重写HotExtract类可抽取其它内容
def extract_hot(html):
    hotExtract = HotExtract()
    hotExtract.feed(html)
    return hotExtract.hot

html = getHtml("http://news.baidu.com/")
hot_list = extract_hot(html)
for hot in hot_list:
    print hot
输出:
刘翔回国
打假传闻 歇业
保钓船 日本
深圳 城管外包
公务员砍人 戳伤
新24孝
安徽艳照门 双开
巩立姣补获铜牌
富二代 宝马肇事
分众 私有化
玉米 虫灾
摩托罗拉裁员
牛初乳禁令
赵普重现央视
高山回国自首
李娜 亚军
李婷去世
叙利亚总统特使访华
石家庄景观灯漏电
张成泽访华
3
3
分享到:
评论
3 楼 snowolf 2012-08-15  
sdu_wizard 写道
snowolf 写道
Python代码也太简洁了。。。。

要不是那个自定义的用于抽取的类,也就十几行代码。

用java得n多行,api底层封装的不够。。。。
2 楼 sdu_wizard 2012-08-15  
snowolf 写道
Python代码也太简洁了。。。。

要不是那个自定义的用于抽取的类,也就十几行代码。
1 楼 snowolf 2012-08-15  
Python代码也太简洁了。。。。

相关推荐

    python抓取百度搜索的数据

    ### Python抓取百度搜索的数据 在本篇教程中,我们将详细介绍如何使用Python抓取百度搜索引擎返回的结果数据。此过程涉及到网络爬虫的基本概念和技术,包括HTTP请求、正则表达式匹配以及网页内容解析等。 #### ...

    Python实现抓取百度搜索结果页的网站标题信息

    该Python脚本主要是实现以上功能。 其中,使用BeautifulSoup来解析HTML,可以参考我的另外一篇文章:Windows8下安装BeautifulSoup 代码如下: 复制代码 代码如下: __author__ = ‘曾是土木人’ # -*- coding: utf-8 ...

    python_获取百度搜索结果(标题和URL)

    Python脚本用于获取百度搜索结果中的标题和URL。 输入:百度关键词及搜索页面数 输出:标题和URL

    python采集1688搜索下拉框热词源码

    ①本文件是python抓取1688PC端搜索框下拉词爬虫, ②包含下拉推荐词以及 推荐词的二级词汇(若有就输出),参数为输入的关键词; ③打印保存至本地mysql数据库。 ----2018-11-16

    百度.py python 爬取百度搜索结果,及安全验证问题

    python 爬取百度搜索结果,及安全验证问题

    基于flask+echarts+python实现微博热搜抓取及前端可视化展示源码+sql数据库+项目说明.zip

    基于flask+echarts+python实现微博热搜抓取及前端可视化展示源码+sql数据库+项目说明(课程设计).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通...

    Python爬取百度搜索结果(标题,摘要,链接)

    近期想要爬取百度搜索的结果,网上的教程一直没有找到可以直接用的,尝试了几个小时终于摸索出了可以用的代码。 主要的问题在于 url 的形式,之前的教程一般是这种形式: url = '...

    Python 抓取图片(源码)

    Python 抓取百度贴吧里边的图片内容

    python抓取百度百科1000条记录

    python抓取百度百科1000条记录,只要一个百度百科的入口链接:如: root_url = "http://baike.baidu.com/view/9936357.htm".入口文件是spider_main.py

    Python微博热搜榜信息爬取项目.zip

    该项目是一个使用Python语言实现的微博热搜信息爬取项目,旨在帮助学习者掌握网络爬虫技术在实际场景中的应用。Python因其简洁易读的语法和丰富的第三方库,成为了爬虫开发的首选语言。在这个项目中,你将学习到如何...

    百度贴吧 爬虫 python

    百度贴吧的爬虫制作和糗百的爬虫制作原理...用Python写的百度贴吧的网络爬虫。 使用方法: 新建一个BugBaidu.py文件,然后将代码复制到里面后,双击运行。 程序功能: 将贴吧中楼主发布的内容打包txt存储到本地。 ...

    python爬取百度输入字符搜索列表.txt

    python爬取百度输入字符搜索列表,小白入门级别啦啦啦啦啦

    Python抓取京东数据

    ### Python抓取京东数据知识点详解 #### 一、项目背景与目标 本项目旨在通过Python爬虫技术抓取京东网站的商品评论数据,并将其存储至MySQL数据库中,方便后续的数据分析和挖掘工作。该项目重点关注京东图书商品的...

    python抓取

    Python抓取,通常指的是使用Python进行网络数据抓取或网络爬虫的过程。Python因其丰富的库支持和简洁的语法,成为了网络爬虫开发的热门选择。本文将深入探讨Python抓取的相关知识点,包括基础概念、常用库、爬虫架构...

    python抓取并保存html页面时乱码问题的解决方法

    本篇文章将深入探讨Python抓取并保存HTML页面时乱码问题的解决方法。 首先,我们需要理解编码的基础知识。计算机内部存储和处理文本信息时使用的是二进制,而我们人类习惯的字符集如ASCII、UTF-8、GBK等则是为了将...

    Python实现自动百度搜索图片并下载(内附exe文件,不需要软件即可运行).zip

    该压缩包文件包含了一个使用Python编写的程序,用于模拟百度图片搜索并自动下载搜索结果中的图片。这个程序的独特之处在于它附带了一个可执行文件(exe),这意味着用户无需安装Python环境或其他任何软件,只需运行...

    基于python的百度云网盘爬虫

    【标题】"基于Python的百度云网盘爬虫"是一个项目,旨在教用户如何使用Python编程语言编写程序来抓取并下载百度云网盘上的公开资源。该项目涵盖了网络爬虫技术,结合了百度云盘的API接口,以及可能涉及的前端和后端...

    python 抓取1688店铺产品详情爬虫

    python 抓取1688店铺产品详情,爬虫

Global site tag (gtag.js) - Google Analytics