目标是把腾讯新闻主页上所有新闻爬取下来,获得每一篇新闻的名称、时间、来源以及正文。

接下来分解目标,一步一步地做。

步骤1:将主页上所有链接爬取出来,写到文件里。

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()

这样子就把所有符合条件的链接都保存到urls.txt文件里了。

步骤2:对于每一个链接,获取它的网页内容。

很简单,只需要打开urls.txt文件,一行一行地读出来就可以了。

也许这里会显得多此一举,但是基于我对解耦的强烈愿望,我还是果断地写到文件里了。后面如果采用面向对象编程,重构起来是十分方便的。

获取网页内容部分也是相对简单的,但是需要把网页的内容都保存到一个文件夹里。

这里有几个新的用法:

代码如下:

os.getcwd()#获得当前文件夹路径

os.path.sep#当前系统路径分隔符(是这个叫法吗?)windows下是“”,linux下是“/”

#判断文件夹是否存在,如果不存在则新建一个文件夹

if os.path.exists('newsdir') == False:

os.makedirs('newsdir')

#str()用来将某个数字转为字符串

i = 5

str(i)

python新闻收集,Python采集腾讯新闻实例相关推荐

  1. 新闻平台聚合之腾讯新闻爬虫发布

    idea of startproject 对于 web 开发者而言,目前各大新闻门户网站,新浪新闻,百度新闻,腾讯新闻,澎湃新闻,头条新闻并没有提供稳定可用的 feed api. 对于 nlper,缺 ...

  2. 各地新闻客户端名称_腾讯新闻客户端排名优秀内容奖榜首

    日前,腾讯新闻客户端在由中国联通主办,艾瑞咨询集团承办的"2013中国联通沃商店第三届开发者大会"上,凭借权威新闻.丰富内容.精品栏目等优势,以及首创极速离线阅读.滑动切换频道等功 ...

  3. python爬取腾讯新闻_Python采集腾讯新闻实例

    目标是把腾讯新闻主页上所有新闻爬取下来,获得每一篇新闻的名称.时间.来源以及正文. 接下来分解目标,一步一步地做. 步骤1:将主页上所有链接爬取出来,写到文件里. python在获取html方面十分方 ...

  4. 爬虫篇——新浪新闻的详细采集过程(列表新闻和新闻内容)

    腾讯新闻.新浪新闻的详细采集过程 一.新浪新闻采集 1.按分类采集新浪的列表新闻 分析过程: 代码编写: 执行效果: 2.采集新浪新闻内容 分析过程 代码编写: 执行效果: 二.腾讯新闻采集 一.新浪 ...

  5. Python爬虫实战(一):腾讯新闻的较真查证平台,抓取疫情谣言数据

    追风赶月莫停留,平芜尽处是春山. 文章目录 追风赶月莫停留,平芜尽处是春山. 一.网页分析 二.接口分析 url分析 返回数据分析 三.编写代码 完整代码 2021.7.14更新:浏览器标识使用 Mo ...

  6. 爬虫篇——腾讯新闻的详细采集过程(列表新闻和新闻内容)

    腾讯新闻.新浪新闻的详细采集过程 一.腾讯新闻采集 1.按分类采集腾讯新闻列表 分析过程: 具体代码: 2.采集腾讯新闻内容 分析过程 具体代码 二.新浪新闻采集分析 一.腾讯新闻采集 1.按分类采集 ...

  7. 腾讯新闻电脑客户端 v4.3.2 官方pc版

    腾讯新闻电脑客户端 v4.3.2 官方pc版 软件大小:11MB  软件语言:简体中文 软件类别:阅读软件 软件授权:免费版 应用平台:/Win8/Win7/WinXP 是腾讯公司的一个新闻资讯产品. ...

  8. Python+Scrapy爬取腾讯新闻首页所有新闻及评论

    前言 这篇博客写的是实现的一个爬取腾讯新闻首页所有的新闻及其所有评论的爬虫.选用Python的Scrapy框架.这篇文章主要讨论使用Chrome浏览器的开发者工具获取新闻及评论的来源地址. Chrom ...

  9. python爬取腾讯新闻_python爬虫实战――爬取腾讯新闻 !

    无论我们通过浏览器打开网站.访问网页,还是通过脚本对URL网址进行访问,本质上都是对HTTP服务器的请求,浏览器上所呈现的.控制台所显示的都是HTTP服务器对我们请求的响应. 以打开腾讯新闻官网为例, ...

最新文章

  1. 花了一个星期,我终于把RPC框架整明白了!
  2. 【OC语法快览】四、基础内存管理
  3. 仿微信的网络聊天室项目开发【完整源码讲解,Java一年工作经验面试题
  4. mysql提示The server quit without updating PID file /usr/local/mysql/data/localhost.localdomain.pid
  5. [游戏模版21] Win32 物理引擎 能量守恒
  6. 成功解决OpenVideoCall(不可用)以及MSB8020 The build tools for v141 (Platform Toolset = ‘v141‘) cannot be found
  7. waf可以查看post请求吗_WAF是如何被绕过的?
  8. Windows7IIS7.5部署Discuz全攻略
  9. 【洛谷3768】简单的数学题【莫比乌斯反演】【杜教筛】【小学奥数】
  10. autoscan、aclocal、automake和autoconf区别
  11. 全网首发:JDK绘制文字系列博文汇总
  12. 测试人员常用的20个Linux命令(附Linux视频教程)
  13. php变量覆盖,boblog任意变量覆盖漏洞
  14. steam加速_PC电脑steam有没有免费试用的加速器?首选电狐加速器
  15. unity 解决图片无法拖进场景的问题
  16. 谷歌浏览器的视频下载插件推荐
  17. 计算机操作和电子技术应用,电子技术应用是学什么
  18. 控制面板设置java_win10系统打开java控制面板的具体技巧
  19. php警告注释,php程序(warning)警告
  20. Android开源经典项目

热门文章

  1. 时尚礼品网html代码,礼品赠送明细.html
  2. 英雄联盟官网首页以及攻略页面制作
  3. 后端集训营|放个大招
  4. 【.Net实用方法总结】 整理并总结System.IO中DirectoryInfo类及其方法介绍
  5. xtrabackup 详解
  6. 梦幻西游玩家最多的服务器,梦幻西游:放眼全服,最具影响力的五大服务器
  7. Go 语言调度(二): goroutine 调度器
  8. 斯坦福大学CS224d基础1:线性代数知识
  9. 阿里云堡垒机代理远程桌面,IP限制操作步骤说明
  10. selenium 自动化测试面试题及答案