最近在学习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孝
安徽艳照门 双开
巩立姣补获铜牌
富二代 宝马肇事
分众 私有化
玉米 虫灾
摩托罗拉裁员
牛初乳禁令
赵普重现央视
高山回国自首
李娜 亚军
李婷去世
叙利亚总统特使访华
石家庄景观灯漏电
张成泽访华
分享到:
相关推荐
python抓取百度搜索的数据,智普推荐使用教程
python 抓取百度云分享数据,百度云最新接口抓取分享链接。
该Python脚本主要是实现以上功能。 其中,使用BeautifulSoup来解析HTML,可以参考我的另外一篇文章:Windows8下安装BeautifulSoup 代码如下: 复制代码 代码如下: __author__ = ‘曾是土木人’ # -*- coding: utf-8 ...
python 爬取百度搜索结果,及安全验证问题
Python脚本用于获取百度搜索结果中的标题和URL。 输入:百度关键词及搜索页面数 输出:标题和URL
主要介绍了Python抓取百度查询结果的方法,涉及Python正则匹配及字符串与URL操作的相关技巧,需要的朋友可以参考下
Python 抓取百度贴吧里边的图片内容
python抓取百度百科1000条记录,只要一个百度百科的入口链接:如: root_url = "http://baike.baidu.com/view/9936357.htm".入口文件是spider_main.py
主要介绍了python抓取并保存html页面时乱码问题的解决方法,结合实例形式分析了Python页面抓取过程中乱码出现的原因与相应的解决方法,需要的朋友可以参考下
使用Python抓取京东数据,并用mySQL存取数据
python抓取
python抓取youtube搜索内容代码
百度贴吧的爬虫制作和糗百的爬虫制作原理...用Python写的百度贴吧的网络爬虫。 使用方法: 新建一个BugBaidu.py文件,然后将代码复制到里面后,双击运行。 程序功能: 将贴吧中楼主发布的内容打包txt存储到本地。 ...
地图瓦片抓取之python
python爬取百度输入字符搜索列表,小白入门级别啦啦啦啦啦
Python 抓取 图片Python 抓取 图片Python 抓取 图片Python 抓取 图片Python 抓取 图片Python 抓取 图片
使用python爬取百度H5相关词推荐代码-python自动爬取百度长尾词
主要介绍了Python实现抓取HTML网页并以PDF文件形式保存的方法,结合实例形式分析了PyPDF2模块的安装及Python抓取HTML页面并基于PyPDF2模块生成pdf文件的相关操作技巧,需要的朋友可以参考下
python 抓取1688店铺产品详情,爬虫