python爬取热门新闻
序言
文中的文本及图片来自互联网,仅作学习培训、沟通交流应用,不具备一切商业行为,如有什么问题请立即在线留言以作解决。
PS:若有必须Python学习材料的小伙伴们能够加点击正下方连接自主获取
python免费学习材料及其群沟通交流解释点击就可以添加
基础开发工具
Python 3.6
Pycharm
import parsel
import requests
import re
总体目标网页分析
今日就爬取新闻中的国际要闻频道
点击显示信息大量新闻内容
能够见到有关的api接口,里边有文章标题及其新闻详情的url地址
如何提取url地址
1、转为json,键值对赋值;
2、用正则表达式搭配url地址;
二种方式都能够完成,看本人爱好
依据插口数据信息连接中的pager 转变开展换页,其相匹配的便是页数。
宝贝详情能够见到新闻内容全是在 div标识里边 p 标识内,依照一切正常的解析网站就可以获取新闻内容。
保存方法
1、你能保存txt文本方式
2、还可以保存成PDF方式
以前也讲过有关爬取文章保存成 PDF ,能够点击正下方连接查询有关保存方法。
Python爬取比比网招标投标书并保存成PDF文件格式
python爬取CSDN网络文章并制做成PDF文档
这篇文章内容得话,就应用保存txt文本的方式吧。
总体爬取构思汇总
在频道目录页中,点击大量新闻内容,获取插口数据信息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.text
lis = get_page_url(html_data) # 得到 新闻报道url地址目录
for li in lis:
page_data = get_html(li).content.decode('utf-8', 'ignore') # 新闻报道宝贝详情 response.text
selector = parsel.Selector(page_data)
title = re.findall('
(.*?)', 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)
运作设计效果图
相关文章
- Python使用tkinter组件Label显示简单数学公式
- 内网渗透之DCOM横向移动
- 以目标为导向的语义交流的共同语言——一个课程学习框架
- python爬虫前奏【成信笔记】
- HTML 5 File API:文件拖放上传功能
- 教你快速创建 Python 虚拟环境
- pyenv 实现Python多版本自由切换
- 用 Python 对 Excel文件进行批量操作
- Python - 接入钉钉机器人
- Python - 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
- crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行
- [源码解析] PyTorch分布式(5) ------ DistributedDataParallel 总述&如何使用
- Python科普系列——类与方法(上篇)
- SAP对STO的交货单执行PGI,报错 -Fld selectn for mvmt type 643 acct 400020 differs
- Spring Boot 实现通用 Auth 认证的 4 种方式
- 盘点4种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据
- OushuDB 学习经验分享(三):技术特点
- Java和Python思维方式的不同之处
- Python中日志记录新技能
- 奥比中光Gemini OpenCV—Python使用