朱莉娅:网站抓取?

6

我已经尝试了几天,想要编写一个小程序从新闻网站中获取标题和链接的代码。

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")

问题在于我不知道如何在从网站获取到文本后继续进行。我该如何检索特定元素(例如标题和新闻中的链接)?
非常感谢您的任何帮助,谢谢。

请参阅 https://dev59.com/tKXja4cB1Zd3GeqPWssC。 - mbauman
1个回答

6
你需要一种HTML解析器。如果仅提取标题,您可能可以使用正则表达式,其内置
如果情况比那更复杂,正则表达式不适用于所有情况,您应该使用一个完整的HTML解析器。Gumbo.jl似乎是Julia中最先进的,并且具有相当简单的接口。
在后一种情况下,拆分文档是不必要的;在前一种情况下,它至少使事情变得更加复杂,因为您必须考虑换行符。因此,最好先解析,然后再拆分。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接