返回介绍

5.2 使用 embed.ly API 下载故事的内容

发布于 2024-01-26 22:17:32 字数 1423 浏览 0 评论 0 收藏 0

我们拥有了所有故事的URL,但不幸的是这对于机器训练来说还不够。现在需要整篇文字的内容。如果我们需要为数十个网站创建自己的爬虫,那么这可能会成为一个巨大的挑战。我们必须编写代码来定位文章的正文,同时小心回避围绕正文的所有其他无关内容。幸运的是,有一些免费的服务将为我们实现这个目标。这里将使用embed.ly,不过你也可以使用一些其他的服务。

第一步是注册embed.ly API的访问。你可以在https://app.embed.ly/signup执行此操作。这是一个很直接的过程。一旦确认注册,你将收到一个API密钥。这就是你所需要的全部。只需在HTTP请求中使用此密钥。现在开始吧。

import urllib 
def get_html(x): 
     qurl = urllib.parse.quote(x) 
     rhtml = requests.get('https://api.embedly.com/1/extract?url=' + 
     qurl + '&key=some_api_key') 
     ctnt = json.loads(rhtml.text).get('content') 
return ctnt 
df.loc[:,'html'] = df['urls'].map(get_html) 
df.dropna(inplace=1) 
df

上述代码生成图5-12的输出。

图5-12

使用这个,每个故事的HTML内容就能准备好了。

我们需要向模型提供纯文本而不是HTML,所以这里将使用解析器来剥离HTML的标签。

from bs4 import BeautifulSoup 
def get_text(x): 
     soup = BeautifulSoup(x, 'lxml') 
     text = soup.get_text() 
     return text 
df.loc[:,'text'] = df['html'].map(get_text) 
df

上述代码生成图5-13的输出。

图5-13

有了这个,我们的训练集就准备完毕了。现在可以继续讨论如何将这些文本转换为模型可以使用的格式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文