粤港澳大湾区7大机场新闻数据的评分系统

2023-11-11 09:30

本文主要是介绍粤港澳大湾区7大机场新闻数据的评分系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

粤港澳大湾区7大机场新闻数据的评分系统

# 一、获取网页源代码

# 1.引入所需库

import requests

import re

import time

import csv

# 2.请求头
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}

# 3.需要挖取新闻数据的机场
companys = ['广州白云机场', '深圳宝安机场', '惠州平潭机场', '佛山沙堤机场', '珠海金湾机场', '香港国际机场', '澳门国际机场']

# 4.建立挖取某机场新闻的函数,获得该网页的源代码
def baidu(i,company):
    num = (i-1)*10
    url = 'https://www.baidu.com/s?tn=news&rtt=4&bsst=1&cl=2&wd=' + company + '&medium=0&x_bfe_rqs=03E80&tngroupname=organic_news&newVideo=12&rsv_dl=news_b_pn&pn=' + str(num)
    res = requests.get(url, headers=headers).text

# 二、提取信息并清洗数据

# 1.提取源代码中所需的网址、标题、新闻来源和发布日期的正则表达式
    p_href = '<h3 class="news-title_1YtI1"><a href="(.*?)"'
    href = re.findall(p_href, res, re.S)
    p_title = '<h3 class="news-title_1YtI1"><.*?>(.*?)<!--/s-text--></a></h3>'
    title = re.findall(p_title, res, re.S)
    p_date = '<span class="c-color-gray2 c-font-normal">(.*?)</span>'
    date = re.findall(p_date, res, re.S)
    p_source = '<span class="c-color-gray c-font-normal c-gap-right">(.*?)</span>'
    source = re.findall(p_source, res, re.S)

# 2.清洗标题及发布日期中的干扰信息
    for i in range(len(href)):
        title[i] = title[i].strip()
        title[i] = re.sub('<.*?>', '', title[i])
        date[i] = date[i].split(' ')[0]
        date[i] = re.sub('年', '-', date[i])
        date[i] = re.sub('月', '-', date[i])
        date[i] = re.sub('日', '', date[i])
        if ('小时' in date[i]) or ('分钟' in date[i]):
            date[i] = time.strftime("%Y-%m-%d")
        else:
            date[i] = date[i]

# 三、对新闻标题和新闻正文进行评分

    score = []
    keywords1 = ['正常', '涨停', '增加', '超过', '增大', '通过', '恢复', '涨幅', '优质', '首个', '迈入']
    keywords2 = ['违约', '诉讼', '下降', '阻碍', '空难', '噪音', '扰民', '黑幕']
    for i in range(len(title)):
        num = 0

        # 1.获取新闻正文
        try:
            article = requests.get(href[i], headers=headers, timeout=10).text
        except:
            article = '新闻爬取失败'

        # 2.解决新闻正文中可能出现的乱码问题
        try:
            article = article.encode('ISO-8859-1').decode('utf-8')  # 解码为UTF-8
        except:
            try:
                article = article.encode('ISO-8859-1').decode('gbk')  # 解码为GBK
            except:
                article = article  # 保持本身的编码

        # 3.筛选新闻正文中真正的正文内容,忽略旁边的滚动新闻的内容
        p_article = '<p>(.*?)</p>'
        article_main = re.findall(p_article, article)  # 获取<p>标签里的正文信息,结果是一个列表
        article = ''.join(article_main)  # 将列表转换成为字符串
        for k in keywords1:
            if (k in article) or (k in title[i]):
                num += 5
        score.append(num)
        
        for L in keywords2:
            if (L in article) or (L in title[i]):
                num -= 5
        score.append(num)

# 四、将数据存入csv

# 1. 创建文件对象
    f = open('Airport news data.csv','a',encoding='utf-8')

# 2. 基于文件对象构建 csv写入对象
    csv_writer = csv.writer(f)

# 3. 构建列表头
    csv_writer.writerow(["机场","标题","网址","来源","日期","对新闻标题和内容评分"])
    for i in range(len(title)):
            csv_writer.writerow([company, title[i], href[i], source[i], date[i], score[i]])
    print("yes")

# 4. 关闭文件
    f.close()

#5.获取文章内容
#    l=open('test.csv','a',encoding='utf-8')
#    csv_writer=csv.writer(l)
#    csv_writer.writerow([article])
#    print("ok!")

# 五、批量爬取7个机场每个机场5页共35页百度网的数据并存入csv

for company in companys:
   for i in range(5):
       baidu(i, company)
       print(company + '第' + str(i+1) + "页爬取成功")

最终结果

 

附上所有代码

# ===============================
# 粤港澳大湾区7个机场新闻数据的评分系统
# ===============================
# 一、获取网页源代码
# 1.引入所需库
import requests
import re
import time
import csv# 2.请求头
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}# 3.需要挖取新闻数据的机场
companys = ['广州白云机场', '深圳宝安机场', '惠州平潭机场', '佛山沙堤机场', '珠海金湾机场', '香港国际机场', '澳门国际机场']# 4.建立挖取某机场新闻的函数,获得该网页的源代码
def baidu(i,company):num = (i-1)*10url = 'https://www.baidu.com/s?tn=news&rtt=4&bsst=1&cl=2&wd=' + company + '&medium=0&x_bfe_rqs=03E80&tngroupname=organic_news&newVideo=12&rsv_dl=news_b_pn&pn=' + str(num)res = requests.get(url, headers=headers).text# 二、提取信息并清洗数据
# 1.提取源代码中所需的网址、标题、新闻来源和发布日期的正则表达式p_href = '<h3 class="news-title_1YtI1"><a href="(.*?)"'href = re.findall(p_href, res, re.S)p_title = '<h3 class="news-title_1YtI1"><.*?>(.*?)<!--/s-text--></a></h3>'title = re.findall(p_title, res, re.S)p_date = '<span class="c-color-gray2 c-font-normal">(.*?)</span>'date = re.findall(p_date, res, re.S)p_source = '<span class="c-color-gray c-font-normal c-gap-right">(.*?)</span>'source = re.findall(p_source, res, re.S)# 2.清洗标题及发布日期中的干扰信息for i in range(len(href)):title[i] = title[i].strip()title[i] = re.sub('<.*?>', '', title[i])date[i] = date[i].split(' ')[0]date[i] = re.sub('年', '-', date[i])date[i] = re.sub('月', '-', date[i])date[i] = re.sub('日', '', date[i])if ('小时' in date[i]) or ('分钟' in date[i]):date[i] = time.strftime("%Y-%m-%d")else:date[i] = date[i]# 三、对新闻标题和新闻正文进行评分score = []keywords1 = ['正常', '涨停', '增加', '超过', '增大', '通过', '恢复', '涨幅', '优质', '首个', '迈入']keywords2 = ['违约', '诉讼', '下降', '阻碍', '空难', '噪音', '扰民', '黑幕']for i in range(len(title)):num = 0# 1.获取新闻正文try:article = requests.get(href[i], headers=headers, timeout=10).textexcept:article = '新闻爬取失败'# 2.解决新闻正文中可能出现的乱码问题try:article = article.encode('ISO-8859-1').decode('utf-8')  # 解码为UTF-8except:try:article = article.encode('ISO-8859-1').decode('gbk')  # 解码为GBKexcept:article = article  # 保持本身的编码# 3.筛选新闻正文中真正的正文内容,忽略旁边的滚动新闻的内容p_article = '<p>(.*?)</p>'article_main = re.findall(p_article, article)  # 获取<p>标签里的正文信息,结果是一个列表article = ''.join(article_main)  # 将列表转换成为字符串for k in keywords1:if (k in article) or (k in title[i]):num += 5score.append(num)for L in keywords2:if (L in article) or (L in title[i]):num -= 5score.append(num)# 四、将数据存入csv
# 1. 创建文件对象f = open('Airport news data.csv','a',encoding='utf-8')# 2. 基于文件对象构建 csv写入对象csv_writer = csv.writer(f)# 3. 构建列表头csv_writer.writerow(["机场","标题","网址","来源","日期","对新闻标题和内容评分"])for i in range(len(title)):csv_writer.writerow([company, title[i], href[i], source[i], date[i], score[i]])print("yes")
# 4. 关闭文件f.close()#5.获取文章内容
#    l=open('test.csv','a',encoding='utf-8')
#    csv_writer=csv.writer(l)
#    csv_writer.writerow([article])
#    print("ok!")# 五、批量爬取7个机场每个机场5页共35页百度网的数据并存入csv
for company in companys:for i in range(5):baidu(i, company)print(company + '第' + str(i+1) + "页爬取成功")

 

 

 

 

 

 

 

这篇关于粤港澳大湾区7大机场新闻数据的评分系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/389104

相关文章

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

【新闻】AI程序员要来了吗?阿里云官宣

内容提要 6 月 21 日,在阿里云上海 AI 峰会上,阿里云宣布推出首个AI 程序员。 据介绍,这个AI程序员具备架构师、开发工程师、测试工程师等多种岗位的技能,能一站式自主完成任务分解、代码编写、测试、问题修复、代码提交整个过程,最快分钟级即可完成应用开发,大幅提升研发效率。 近段时间以来,有关AI的实践应用突破不断,全球开发者加速研发步伐。有业内人士坦言,随着大模型性能逐渐提升,AI应

数据时代的数字企业

1.写在前面 讨论数据治理在数字企业中的影响和必要性,并介绍数据治理的核心内容和实践方法。作者强调了数据质量、数据安全、数据隐私和数据合规等方面是数据治理的核心内容,并介绍了具体的实践措施和案例分析。企业需要重视这些方面以实现数字化转型和业务增长。 数字化转型行业小伙伴可以加入我的星球,初衷成为各位数字化转型参考库,星球内容每周更新 个人工作经验资料全部放在这里,包含数据治理、数据要

如何在Java中处理JSON数据?

如何在Java中处理JSON数据? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Java中如何处理JSON数据。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代应用程序中被广泛使用。Java通过多种库和API提供了处理JSON的能力,我们将深入了解其用法和最佳

两个基因相关性CPTAC蛋白组数据

目录 蛋白数据下载 ①蛋白数据下载 1,TCGA-选择泛癌数据  2,TCGA-TCPA 3,CPTAC(非TCGA) ②蛋白相关性分析 1,数据整理 2,蛋白相关性分析 PCAS在线分析 蛋白数据下载 CPTAC蛋白组学数据库介绍及数据下载分析 – 王进的个人网站 (jingege.wang) ①蛋白数据下载 可以下载泛癌蛋白数据:UCSC Xena (xena

PS系统教程25

介绍软件 BR(bridge) PS 配套软件,方便素材整理、管理素材 作用:起到桥梁作用 注意:PS和BR尽量保持版本一致 下载和安装可通过CSDN社区搜索,有免费安装指导。 安装之后,我们打开照片只需双击照片,就自动在Ps软件中打开。 前提:电脑上有PS软件 三种预览格式 全屏预览 评星级 直接按数字键就可以 方向键可以更换图片 esc退出 幻灯片放

风水研究会官网源码系统-可展示自己的领域内容-商品售卖等

一款用于展示风水行业,周易测算行业,玄学行业的系统,并支持售卖自己的商品。 整洁大气,非常漂亮,前端内容均可通过后台修改。 大致功能: 支持前端内容通过后端自定义支持开启关闭会员功能,会员等级设置支持对接官方支付支持添加商品类支持添加虚拟下载类支持自定义其他类型字段支持生成虚拟激活卡支持采集其他站点文章支持对接收益广告支持文章评论支持积分功能支持推广功能更多功能,搭建完成自行体验吧! 原文