python - 如何从 Google 新闻 RSS 中抓取 Google 新闻文章内容?
问题描述
将来,(可能还很遥远,因为我还是个新手)我想做数据分析,根据我从谷歌新闻RSS中得到的新闻内容,但为此,我需要访问该内容,这是我的问题。
使用 URL“ https://news.google.cl/news/rss ”我可以访问标题等数据,以及每个新闻项目的 URL,但 URL 的格式不允许我抓取它(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 的每个新闻项目的标题和内容
解决方案
该脚本可以让您开始使用(打印标题、网址、简短描述和网站内容)。从网站解析内容是基本形式 - 每个网站都有不同的格式/样式等:
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()
印刷:
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.
推荐阅读
- django - 姜戈 | 如何与两个模型建立反向关系
- python - 如何将 pythonic double for 循环转换为标准代码?
- android - 在运行时从 XML 文件更新小部件布局
- c# - 捕获所有异常 WPF
- laravel - Laravel - 如何在邮件称呼中添加换行符?
- c# - 使用 SQL Server 数据库和 ASP.NET 应用程序中的存储过程在多个表中插入记录
- gcc - 如何将部分映射到 ELF 输出文件中的段?
- reactjs - 使用 React 的基本示例
- html - 语义 UI:使垂直菜单(侧边栏)在平板电脑和移动设备视图中折叠
- android - 试图在 xamarin 中打开一个 csv 文件