几天来,我一直在尝试使用这个小代码从期刊网站获取新闻的标题和链接。
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")
问题是,一旦我从网站上收到文本,我就无法弄清楚如何继续。如何检索特定元素(在这种情况下作为新闻的标题和链接)?
非常感谢任何帮助,谢谢
最佳答案
您需要某种 HTML 解析。对于仅提取标题,您可能可以使用正则表达式,即 built in .
如果比这更复杂,正则表达式 don't generalize ,并且您应该使用成熟的 HTML 解析器。 Gumbo.jl
在 Julia 中似乎是最先进的,并且具有相当简单的界面。
在后一种情况下,不需要拆分文档;在前者中,它至少使事情变得更加复杂,从那时起您就必须考虑换行。因此,最好先解析,然后再拆分。
可以使用库 Cascadia
提取特定元素git repo
例如,HTML 页面中元素的 class 属性可以通过 qs = eachmatch(Selector(".classID"),h.root)
提取。使所有类元素如<div class="classID">
为返回的查询字符串 (qs) 选择/提取。
关于web-scraping - Julia :网站抓取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50078390/