python 自动编写新闻_Python多篇新闻自动采集
昨天用python写了一个天气预报采集,今天趁着兴头写个新闻采集的。
目标是,将腾讯新闻主页上所有新闻爬取下来,获得每一篇新闻的名称、时间、来源以及正文。
接下来分解目标,一步一步地做。
步骤1:将主页上所有链接爬取出来,写到文件里。
根据上一篇文章的方法,可以简单地获取到整个主页的文本内容。
我们都知道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)
有了这些方法,将字符串保存到某个文件夹下不同的文件就不再是一件困难的事了。
步骤3:枚举每一个网页,根据正则匹配获得目标数据。
下面的方法是用来遍历文件夹的。
#这个是用来遍历某个文件夹的
for parent, dirnames, filenames in os.walk(dir):
for dirname in dirnames
print parent, dirname
for filename in filenames:
print parent, filename
遍历,读取,匹配,结果就出来了。
我使用的数据提取的正则表达式是这样的:
python 自动编写新闻_Python多篇新闻自动采集相关推荐
- python 采集新闻_Python多篇新闻自动采集
昨天用python写了一个天气预报采集,今天趁着兴头写个新闻采集的. 目标是,将腾讯新闻主页上所有新闻爬取下来,获得每一篇新闻的名称.时间.来源以及正文. 接下来分解目标,一步一步地做. 步骤1:将主 ...
- python爬取图文新闻_python爬取新闻需要什么软件
2017-02-16 回答 需求: 从门户网站爬取新闻,将新闻标题,作者,时间,内容保存到本地txt中. 用到的python模块: import re # 正则表达式 import bs4 # b ...
- python怎么编写流氓软件_Python恶意软件分析入门
介绍 提升你的 Python 编程技巧可能正在你的待做清单上--就行清理衣橱.粉刷墙壁.拧紧螺丝一样(你知道我在说什么). 通常来说,脚本是跨大多数安全学科的一个实用的工具,编写脚本可以帮助你自动完成 ...
- python抢货程序_Python自动化xpath实现自动抢票抢货代码示例
本篇文章小编给大家分享一下Python自动化xpath实现自动抢票抢货代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 总代码: for i i ...
- python怎么编写流氓软件_Python 编写强制性流氓软件, 可表白, 可其它!
Python 编写强制性流氓软件, 可表白, 可其它! 来我们先看看效果: 用 Python 做了一个最近抖音上非常火的表白神器, 欢迎各位大佬指导 需求: Python3.6 PyQT5 库 不多废 ...
- python基本符号怎么打_Python入门篇基础语法
数据类型初探 int 类型 [整数] float 类型 [小数] str 类型 [字符串] 注:字符串以单引号或者双引号包裹 bool类型 [True] 或 [False] Python标识符 标识符 ...
- python自动刷视频_python+adb命令实现自动刷视频脚本案例
python小白第一次发博客,自己自学了一下写了一个demo,可能语法啥的不够标准,毕竟没有真正学过python 主要用到的是 import os #os包用于运行cmd命令 adb shell #这 ...
- python解包操作_python基础篇笔记02 文件操作 序列解包**星号语法
文件的数据是存放于硬盘上的,因而只存在覆盖.不存在修改这么一说,我们平时看到的修改文件, 都是模拟出来的效果,具体的说有两种实现方式: 方式一:将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修 ...
- python实现自动登录软件_Python selenium实现微博自动登录的示例代码
(一)编程环境 操作系统:Win 10 编程语言:Python 3.6 (二)安装selenium 这里使用selenium实现. 如果没有安装过python的selenium库,则安装命令如下 pi ...
最新文章
- JS 把url的参数解析成对象
- 计算机网络系统结构分析 pdf,计算机网络(实验三:数据包结构分析).pdf
- ospf序列号等问题
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)
- 信息学奥赛一本通C++语言——1070:人口增长
- 社群模式:什么是普通人赚钱的核心秘密
- 谁来结束 GUI 程序?| CSDN 博文精选
- Redis入门学习笔记--附Redis工具类
- 太好玩了!用Python写一个乒乓球游戏!
- oracle 12C 创建用户失败 解决方案
- “云脉文档管理”微信小程序提供高效的办公体验
- React中input输入框中文输入的问题
- 怎么在线快速将多张CAD图纸转换成低版本DXF格式?
- TO-B类软件产品差异化
- Spring Security + JWT实现权限管理
- k8s探针检测php,K8S教程(7)使用探针对容器进行健康检查
- PHP中使用SHA256,如何在php5.3.0中使用sha256
- 微信抽奖java代码_微信小程序活动助手,包括nodejs后台管理系统和java后台接口
- java jfm入门_java入门编程解析
- 【数据分析day05】Scipy读/写.mat文件,wav,mp3