本文主要是介绍python 爬虫,东方网 上海新闻, 简单数据分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
起因:
本来想去市区玩玩,结果搜到一些相关的新闻,所以就想爬取新闻网站…
1. 爬虫部分
import os
import csv
import time
import requests"""
# home: https://sh.eastday.com/
# 1. 标题, url, 来源,时间
"""headers = {'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36'
}def get_data():file_name = 'shanghai_news.csv'has_file = os.path.exists(file_name)# 打开文件,写入模式with open(file_name, 'a', newline='', encoding='utf-8') as file:# 创建一个csv.DictWriter对象,用于写入字典数据columns = ['title', 'url', 'time','source']writer = csv.DictWriter(file, fieldnames=columns)# 写入表头if not has_file:writer.writeheader()# 爬取数据. 20页. 每页20条。 每天大概有400个新闻。for i in range(20):time.sleep(0.5)url = f"https://apin.eastday.com/apiplus/special/specialnewslistbyurl?specialUrl=1632798465040016&skipCount={i * 20}&limitCount=20"resp = requests.get(url, headers=headers)ret = resp.json()junk = ret['data']['list']for x in junk:item = dict()item['title'] = x["title"]item["url"] = x["url"]item["time"] = x["time"]item["source"] = x["infoSource"]# 写入数据writer.writerow(item)print(item)get_data()
效果:
2. 数据分析
2.1 查看每个小时的新闻数量。 11点 – 12点 新闻数量比较少,估计吃饭去了。
2.2 查看新闻来源的分布情况。 实际上来源很多,我选择了前10个。
2.3 其他。
- 8.23日 周五, 新闻总数是119条。
- 8.25日 周日, 新闻总数是48条。
- 所以我猜测是, 毕竟是周末, 新闻工作者也要休息。
这篇关于python 爬虫,东方网 上海新闻, 简单数据分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!