这篇文章主要介绍了Python采集腾讯新闻实例,一个简单的例子,着重于实现步骤的讲解,需要的朋友可以参考下
目标是把腾讯新闻主页上所有新闻爬取下来,获得每一篇新闻的名称、时间、来源以及正文。
接下来分解目标,一步一步地做。
python在获取html方面十分方便,寥寥数行代码就可以实现我们需要的功能。
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
page.close()
return html
我们都知道html链接的标签是“a”,链接的属性是“href”,也就是要获得html中所有tag=a,attrs=href 值。
查阅了资料,一开始我打算用HTMLParser,而且也写出来了。但是它有一个问题,就是遇到中文字符的时候无法处理。
class parser(HTMLParser.HTMLParser):
def handle_starttag(self, tag, attrs):
if tag == 'a':
for attr, value in attrs:
if attr == 'href':
print value
后来使用了SGMLParser,它就没有这个问题。
class URLParser(SGMLParser):
def reset(self):
SGMLParser.reset(self)
self.urls = []
def start_a(self,attrs):
href = [v for k,v in attrs if k=='href']
if href:
self.urls.extend(href)
SGMLParser针对某个标签都需要重载它的函数,这里是把所有的链接放到该类的urls里。
lParser = URLParser()#分析器来的
socket = urllib.urlopen("http://news.qq.com/")#打开这个网页fout = file('urls.txt', 'w')#要把链接写到这个文件里
lParser.Feed(socket.read())#分析啦
reg = 'http://news.qq.com/a/.*'#这个是用来匹配符合条件的链接,使用正则表达式匹配
pattern = re.compile(reg)
for url in lParser.urls:#链接都存在urls里
if pattern.match(url):
fout.write(url+'n')
fout.close()
上一篇:python hough变换检测直线的实现方法下一篇:Django框架HttpRequest对象用法实例分析 热门搜索:
腾讯新闻
腾讯新闻app
腾讯新闻极速
腾讯新闻客户端
腾讯新闻极速版
相关文章
Python采集腾讯新闻实例
2021-10-13阅读(6271)评论(0)推荐()这篇文章主要介绍了Python采集腾讯新闻实例,一个简单的例子,着重于实现步骤的讲解,需要的朋友可以参考下
腾讯新闻app怎么管理我的关注?
2021-09-25阅读(5441)评论(0)推荐()腾讯新闻app怎么管理我的关?腾讯新闻app中关注了很多新闻,现在想要取消一部分已关注的内容,下面我们就来看看腾讯新闻app取消关注的方法,需要的朋友可以参考下
腾讯新闻极速版和普通版有什么区别 腾讯新闻极速版是什么
2021-09-22阅读(4493)评论(0)推荐()腾讯新闻极速版是什么?腾讯新闻极速版和普通版有什么区别?下文中为大家带来了详细的介绍,感兴趣的朋友不妨阅读下文内容,参考一下吧
QQ6.3怎么关闭腾讯新闻 QQ6.3关闭腾讯新闻教程
2021-09-21阅读(3828)评论(0)推荐()QQ6.3版本的更新最大变动就是QQ群也能匿名聊天,比较困扰童鞋们的肯定是每次登录QQ时,系统总会自动弹出腾讯新闻,那么该如何关闭掉系统自动提示呢,就让小编来教...
腾讯新闻app如何发布文章?使用腾讯新闻app发布文章的方法介绍
2021-09-25阅读(4321)评论(0)推荐()腾讯新闻app一跨新闻阅读软件,用户使用这款app可以在上面发布一些文章哦!本文中将会带来详细的操作方法,感兴趣的朋友可以阅读本文参考一下
腾讯新闻app如何发布视频?使用腾讯视频app发布视频的方法介绍
2021-09-25阅读(5755)评论(0)推荐()腾讯新闻app是一款可以阅读实时新闻,周边资讯等等的软件,本文中介绍的是使用这款app发布视频的方法,想了解的朋友可以参考一下
微信app中怎么显示腾讯新闻功能?
2021-09-25阅读(10449)评论(0)推荐()微信app中怎么显示腾讯新闻功能?打开微信没有显示腾信新闻,想要开启腾讯新闻功能,该怎么开启呢?下面我们就来看看详细的教程,需要的朋友可以参考下
取消
提交评论
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。