如何从 Google 新闻 RSS 中抓取 Google 新闻文章内容?

2024-02-26

将来,(可能还很遥远,因为我还是个新手)我想做数据分析,基于我从Google News RSS获得的新闻内容,但为此,我需要访问该内容,这就是我的问题。

使用网址“https://news.google.cl/news/rss https://news.google.cl/news/rss“我可以访问标题和每个新闻项的 URL 等数据,但 URL 的格式不允许我抓取它(https://news.google.com/__i/rss/rd/articles/CBMilgFod.. https://news.google.com/__i/rss/rd/articles/CBMilgFod...).

news_url="https://news.google.cl/news/rss"
Client=urlopen(news_url)
xml_page=Client.read()
Client.close()

soup_page=soup(xml_page,"xml")
news_list=soup_page.findAll("item")

for news in news_list:
    print(news.title.text)
    print("-"*60)

    response = urllib.request.urlopen(news.link.text)
    html = response.read()
    soup = soup(html,"html.parser")
    text = soup.get_text(strip=True)
    print(text) 

最后print(text)打印一些代码,例如:

if(typeof bbclAM === 'undefined' || !bbclAM.isAM()) {
                        googletag.display('div-gpt-ad-1418416256666-0');
                } else {
                        document.getElementById('div-gpt-ad-1418416256666-0').st
yle.display = 'none'
                }
        });(function(s, p, d) {
            var h=d.location.protocol, i=p+"-"+s,
            e=d.getElementById(i), r=d.getElementById(p+"-root"),
            u=h==="https:"?"d1z2jf7jlzjs58.cloudfront.net"
            :"static."+p+".com";
            if (e) return;

我希望打印 RSS 中每条新闻的标题和内容


这个脚本可以让你开始一些东西(打印标题、URL、简短描述和网站内容)。解析网站的内容是基本形式 - 每个网站都有不同的格式/样式等:

import textwrap
import requests
from bs4 import BeautifulSoup

news_url="https://news.google.cl/news/rss"
rss_text=requests.get(news_url).text
soup_page=BeautifulSoup(rss_text,"xml")

def get_items(soup):
    for news in soup.findAll("item"):
        s = BeautifulSoup(news.description.text, 'lxml')
        a = s.select('a')[-1]
        a.extract()         # extract lat 'See more on Google News..' link

        html = requests.get(news.link.text)
        soup_content = BeautifulSoup(html.text,"lxml")

        # perform basic sanitization:
        for t in soup_content.select('script, noscript, style, iframe, nav, footer, header'):
            t.extract()

        yield news.title.text.strip(), html.url, s.text.strip(), str(soup_content.select_one('body').text)

width = 80
for (title, url, shorttxt, content) in get_items(soup_page):
    title = '\n'.join(textwrap.wrap(title, width))
    url = '\n'.join(textwrap.wrap(url, width))
    shorttxt = '\n'.join(textwrap.wrap(shorttxt, width))
    content = '\n'.join(textwrap.wrap(textwrap.shorten(content, 1024), width))

    print(title)
    print(url)
    print('-' * width)
    print(shorttxt)
    print()
    print(content)
    print()

Prints:

WWF califica como inaceptable y condenable adulteración de información sobre
salmones de Nova Austral - El Mostrador
https://m.elmostrador.cl/dia/2019/06/30/wwf-califica-como-inaceptable-y-
condenable-adulteracion-de-informacion-sobre-salmones-de-nova-austral/
--------------------------------------------------------------------------------
El MostradorLa organización pide investigar los centros de cultivo de la
salmonera de capitales noruegos y abrirá un proceso formal de quejas. La empresa
ubicada en la ...

01:41:28 WWF califica como inaceptable y condenable adulteración de información
sobre salmones de Nova Austral - El Mostrador País PAÍS WWF califica como
inaceptable y condenable adulteración de información sobre salmones de Nova
Austral por El Mostrador 30 junio, 2019 La organización pide investigar los
centros de cultivo de la salmonera de capitales noruegos y abrirá un proceso
formal de quejas. La empresa ubicada en la Patagonia chilena es acusada de
falsear información oficial ante Sernapesca. 01:41:28 Compartir esta Noticia
Enviar por mail Rectificar Tras una investigación periodística de varios meses,
El Mostrador accedió a abundante información reservada, que incluye correos
electrónicos de la gerencia de producción de la compañía salmonera Nova Austral
–de capitales noruegos– a sus jefes de área, donde se instruye manipular las
estadísticas de mortalidad de los salmones para ocultar las verdaderas cifras a
Sernapesca –la entidad fiscalizadora–, a fin de evitar multas y ver disminuir
las [...]

...and so on.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Google 新闻 RSS 中抓取 Google 新闻文章内容? 的相关文章

随机推荐

  • 确定神经网络的适当神经元数量

    我一直在对神经网络进行一些研究 整个概念和理论对我来说很有意义 尽管我一直无法找到答案的一个问题是神经网络中应该使用多少个神经元 以获得正确 有效的结果 包括隐藏层 每个隐藏层的神经元等 更多的神经元一定会得到更准确的结果 同时对系统造成更
  • 打印当前的随机种子,以便我稍后可以使用 set.seed() 输入它

    我是这里的 R 新手 假设我有一行代码 set seed 123456 然后我想获取值 123456 以便我可以将其打印出来用于文档目的 并且如果需要的话可以在将来的某个时候重新输入该值 那么我如何获得该种子呢 请注意 我可能会注释掉上面的
  • 使用具有重叠列名的 Pandas 连接多个数据框?

    我有多个 超过 2 个 数据框想要合并 它们都共享相同的值列 In 431 x head for x in data Out 431 AvgStatisticData DateTime 2012 10 14 14 00 00 39 3359
  • 设置 android 按钮不可见,但仍附加 onClick 侦听器

    所以目前我正在我的应用程序中放入一个复活节彩蛋 我想要Button不可见 但单击时 Rick roll 到目前为止 当我说 Button setVisibility view VISIBLE Button setBackgroundColo
  • Zeppelin 无法在 docker 上加载:logErrors docker zeppelin

    我遇到的第一个问题是 如果不指定版本标签 我无法提取基本映像 这没什么大不了的 但我发现这很奇怪 在那之后 docker pull apache zeppelin 0 8 2 之后我就可以获得图像 但我尝试将其运行为 docker run
  • 是否可以在 [win-builder](http://win-builder.r-project.org/) 上构建使用 Rcpp 和 Boost.Thread 的 R 包?

    最近做了一个R包 使用Rcpp来集成R和C C 库 Boost 用于多线程 我想知道我的包是否可以构建在http win builder r project org http win builder r project org 我发现定义了
  • 使用正则表达式限制文本字段/数字字段中的输入字符?

    我在 ExtJS Form 中使用 numberField 并只想输入 0 99 范围内的正数 并且它应该只接受 2 个字符 且不超过 2 个 xtype textfield allowNegative false allowDecimal
  • SwiftUI 中的比例高度(或宽度)

    我开始探索 SwiftUI 但找不到一种方法来获得简单的东西 我希望 View 具有成比例的高度 基本上是其父级高度的百分比 假设我有 3 个垂直堆叠的视图 我想 第一个高度为 其父级高度 的 43 第二个高度为 其父级高度的 37 最后一
  • 如何在逻辑应用程序中循环遍历数组?

    我已设法将所有用户数据放入数组中 请参阅here https stackoverflow com questions 59107093 how to store all azure ad user group members in an a
  • 使用 C++、libpng 和 OpenMP 并行化 PNG 文件创建

    我目前正在尝试在 C 中实现一个基于 libpng 的 PNG 编码器 它使用 OpenMP 来加速压缩过程 该工具已经能够从各种图像格式生成 PNG 文件 我将完整的源代码上传到pastebin com 这样你就可以看到我到目前为止所做的
  • 在 null Laravel 上调用成员函数 Roles()

    我正在 Laravel 中使用户角色发挥作用 一切都工作正常 但从任何地方都出现错误 调用成员函数 Roles 或 null 这是我发送请求的 html td td
  • 未授权端点,请检查设置->安全->远程站点设置端点

    我无法通过 Twilio API 发送短信 我得到了以下异常 ERROR 未授权端点 请检查设置 gt 安全 gt 远程站点设置 端点 url global class SampleSMSTest future callout true p
  • 将项目添加到 Linux 内核链表

    我在用linux list h在我的用于实现队列 堆栈行为的代码中 头部 尾部添加API如下 static inline void list add struct list head new struct list head head li
  • 缓冲区溢出攻击(攻击实验室第 2 阶段)

    我有一个缓冲区溢出实验室 我必须为一个名为攻击实验室 http csapp cs cmu edu 3e attacklab pdf 我处于实验室的第二阶段 我必须将代码作为漏洞利用字符串的一部分注入 以使程序指向函数 touch2 的地址
  • 数据库连接和 OutOfMemoryError:Java 堆空间

    去年夏天 我制作了一个 Java 应用程序 它可以解析一些 PDF 文件并获取它们包含的信息并将其存储在 SQLite 数据库中 一切都很好 我每周左右都会向数据库添加新文件 没有任何问题 现在 我正在尝试提高应用程序的速度 我想看看如果我
  • 将广告注入 Google Chrome 扩展程序

    我正在开发一个 google chrome 扩展 并计划使用允许的功能注入广告 我检查过 广告行为 前面写着 此扩展程序将广告注入一些第三方网站 我的问题是 如何以及在哪里提及广告来源 比如说 如果我想显示 google adsense 我
  • PhoneGap 的 Flash 插件

    我正在phonegap 中开发一个html css javascript 应用程序 在该应用程序中 我需要一个 JavaScript 的 Flash 插件编码 以便为我的应用程序目的启用音频 视频 如果有人知道解决方案 请尽快回复我 您必须
  • 数据集与带有存储过程的实体框架

    整个问题已被重写以更加清晰 新项目设计 SQL Server 2012 Visual Studio 2012 Net 4 5 业务逻辑将在存储过程中实现 ASP Net 网络表单 WCF SOAP XML Web 服务使用 DBA 提供的存
  • Android ViewHolder背景颜色

    我正在创建一个 Android 应用程序 其中包含带有嵌套 CardView 的 RecyclerView 我需要将其他所有卡片更换为不同的颜色 我在用 Override覆盖onBindViewHolder ViewHolder vh in
  • 如何从 Google 新闻 RSS 中抓取 Google 新闻文章内容?

    将来 可能还很遥远 因为我还是个新手 我想做数据分析 基于我从Google News RSS获得的新闻内容 但为此 我需要访问该内容 这就是我的问题 使用网址 https news google cl news rss https news