用Python制作一个每天新闻热点爬虫脚本

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

刚接触Python的新手、小白,可以复制下面的链接去观看Python的基础入门教学视频

https://v.douyu.com/author/y6AZ4jn9jwKW

基本开发环境

  • Python 3.6

  • Pycharm

import parselimport requestsimport re

目标网页分析

今天就爬取新闻网中的国际新闻栏目

点击显示更多新闻内容

可以看到相关的数据接口,里面有新闻标题以及新闻详情的url地址

如何提取url地址

1、转成json,键值对取值;
2、用正则表达式匹配url地址;

两种方法都可以实现,看个人喜好

根据接口数据链接中的pager 变化进行翻页,其对应的就是页码。

详情页可以看到新闻内容都是在 div标签里面 p 标签内,按照正常的解析网站即可获取新闻内容。

保存方式

1、你可以保存txt文本形式
2、也可以保存成PDF形式

整体爬取思路总结

在栏目列表页中,点击更多新闻内容,获取接口数据url

接口数据url中返回的数据内容中匹配新闻详情页url

使用常规解析网站操作(re、css、xpath)提取新闻内容

保存数据

代码实现

获取网页源代码

def get_html(html_url):"""获取网页源代码 response    :param html_url: 网页url地址    :return: 网页源代码"""response = requests.get(url=html_url, headers=headers)return response

获取每篇新闻url地址

def get_page_url(html_data):"""获取每篇新闻url地址    :param html_data: response.text    :return:  每篇新闻的url地址"""page_url_list = re.findall('"url":"(.*?)"', html_data)return page_url_list

文件保存命名不能含有特殊字符,需要对新闻标题进行处理

def file_name(name):"""文件命名不能携带 特殊字符    :param name:  新闻标题    :return: 无特殊字符的标题"""replace = re.compile(r'[\\\/\:\*\?\"\<\>\|]')    new_name = re.sub(replace, '_', name)return new_name

保存数据

def download(content, title):"""with open 保存新闻内容 txt    :param content:  新闻内容    :param title:   新闻标题    :return:"""path = '新闻\\' + title + '.txt'with open(path, mode='a', encoding='utf-8') as f:        f.write(content)print('正在保存', title)

主函数

def main(url):"""主函数    :param url:  新闻列表页 url地址    :return:"""html_data = get_html(url).text   # 获得接口数据response.textlis = get_page_url(html_data)   # 获得新闻url地址列表for li in lis:        page_data = get_html(li).content.decode('utf-8', 'ignore')  # 新闻详情页 response.textselector = parsel.Selector(page_data)        title = re.findall('<title>(.*?)</title>', page_data, re.S)[0]  # 获取新闻标题new_title = file_name(title)        new_data = selector.css('#cont_1_1_2 div.left_zw p::text').getall()        content = ''.join(new_data)        download(content, new_title)if __name__ == '__main__':for page in range(1, 101):        url_1 = 'https://channel.chinanews.com/cns/cjs/gj.shtml?pager={}&pagenum=9&t=5_58'.format(page)        main(url_1)

运行效果图

(0)

相关推荐

  • Python爬虫新手入门教学(十六):爬取网站音乐素材

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  • 小游戏:换脸术

    最近估计大家都陆陆续续的复工了,大家经常在节后会得一个叫做节后综合征的病,具体表现为:提不起精神.上班效率低.没精神,严重的还会出现恶心.焦虑.神经衰落等等.这里给大家带来一个小游戏娱乐一下,放松上班 ...

  • Android 借助 Python 实现自动打包上传 fir

    概述 在开发的过程中,很多时候完成了一个功能的开发,往往需要打包给测试进行测试,之前就是打个包,要么是通过 USB 进行安装,要么就是打个包通过 QQ 给测试发送过去,后来接触到 Jenkins,发现 ...

  • 60 行代码,10000 个虎牙小姐姐视频来袭!

    来源:Python 技术「ID: pythonall」 小编前几天已经写了用 Python 下载 B 站的小姐姐跳舞视频,今天用 Python 下载虎牙的小姐姐视频,大伙一起来看看吧. 获取播放列表 ...

  • 普通爬虫vs多线程爬虫vs框架爬虫,Python爬对比

    前言 本文的文字及图片过滤网络,可以学习,交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space.b ...

  • 超详细,手把手教你用20行Python代码制作飞花令小程序!

    来源:早起Python 作者:刘早起 飞花令是古时候人们经常玩一种"行酒令"的游戏,是中国古代酒令之一,属雅令."飞花"一词则出自唐代诗人韩翃<寒食> ...

  • Python爬虫进阶:爬取梨视频网站Top排行榜视频数据

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于青灯编程 ,作者:清风 Python爬虫进阶:反反爬实战案例-爬取梨 ...

  • Python爬虫新手入门教学(四):爬取前程无忧招聘信息

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  • 用 Python 制作一个迷宫游戏

    相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至耗费数天,然后可能还要分别从入口和出口两头寻找才能找的到通路,甚至也可能找不到通路. 虽然 ...

  • Python制作一个数据预处理小工具,非常实用(拿走不谢)

    我们平常使用Python进行数据处理与分析时,在import完一大堆库之后 ,就是对数据进行预览,查看数据是否出现了缺失值.重复值等异常情况,并进行处理. 本文将结合GUI工具PySimpleGUI, ...

  • 用Python制作一个数据预处理小工具,多种操作,一键完成,非常实用!

    在我们平常使用Python进行数据处理与分析时,在import完一大堆库之后 ,就是对数据进行预览,查看数据是否出现了缺失值.重复值等异常情况,并进行处理. 本文将结合GUI工具PySimpleGUI ...

  • 我用 Python 制作了一个迷宫游戏

    来源:Python 技术「ID: pythonall」 相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至耗费数天,然后可能还要分别从入口和 ...

  • 用 Python 开发一个【GIF表情包制作神器】

    之前小帅b写过这样一篇教程 用python成为了微信斗图届的高手 然后,好多人表示: 虽然存了很多表情包 但似乎还不是很过瘾 因为它不可以自己来定制 我们可不可以根据一些表情素材 然后自己制作专属表情 ...

  • 我是如何培养新人的:关于如何制作一个python库?

    我喜欢提出问题给新人去解决,而不会直接把答案告诉他.最近在工作中完成了一些文本分类的算法,涉及到最后的工程化问题,于是我布置了个作业,要求是把代码整理成python,并发布,方便调用. 下面是新人完成 ...

  • 为了追到小姐姐,我用 Python 制作了一个机器人

    第一时间获取 Python 技术干货! 阅读文本大概需要 15 分钟. 1 目 标 场 景 最近发现有一个微信好友,我的每一条朋友圈动态,无论什么时候发布,发布的什么内容,点赞列表总有它的身影. 这不 ...

  • 如何在word中制作一个分数

    很多人都知道,在使用word软件的过程中一般是没办法直接输入分数的,此时如需要输入分数的话,需要自己动手制作.那么,在word中如何制作一个分数呢?下面就让小编来介绍一下. 1.打开电脑上的word软 ...

  • 菜鸟记550-用LOOKUP来为相识20年的老同学制作一个简易的查询器

    万一您身边的朋友用得着呢? 各位朋友早上好,小菜继续和您分享经验之谈,截止今日小菜已分享500+篇经验之谈,可以文章编号或关键词进行搜索. 微信推送规则发生改变,如果您想看到小菜每个工作日的经验之谈, ...