首页 > 解决方案 > 朱莉娅:网站抓取?

问题描述

几天来,我一直在尝试使用这个小代码来从期刊网站获取标题和新闻链接。

using HTTP
function website_parser(website_url::AbstractString)
r = readstring(get(website_url))
splitted = split(r, "\n")
end

website_parser("https://www.nature.com/news/newsandviews")

问题是,一旦我从网站上得到文本,我就无法弄清楚如何继续。如何检索特定元素(在这种情况下作为新闻的标题和链接)?

非常感谢任何帮助,谢谢

标签: web-scrapingjulia

解决方案


您需要某种 HTML 解析。对于仅提取标题,您可能可以摆脱内置的正则表达式。

如果它变得比这更复杂,则正则表达式不会泛化,您应该使用成熟的 HTML 解析器。 Gumbo.jl似乎是 Julia 中最先进的,并且具有相当简单的界面。

在后一种情况下,不需要拆分文档;在前者中,它至少使事情变得更复杂,从那时起你必须考虑换行符。所以,最好先解析,然后拆分。

可以使用库Cascadia git repo提取特定元素 ,例如,可以提取 HTML 页面中元素的属性,以便为返回的查询字符串 (qs) 选择/提取qs = eachmatch(Selector(".classID"),h.root)所有元素,例如。<div class="classID">


推荐阅读