web-scraping - Julia :网站抓取?

标签 web-scraping julia

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

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/

相关文章:

javascript - 为什么我在抓取时会得到重复的数据?

python - 并行抓取数据+批处理

julia - 滚动阵列,均匀圆形移位

julia - 如何确定 JuMP 中的 Gurobi 或求解器版本

julia - 如何在 REPL 中打印 Julia 中的函数代码?

python - 识别python中的特定异常

python - url :/Caused by ProxyError 超出了最大重试次数

javascript - 数组中的那些三点是什么?用评论标记它

julia - 如何减少 Julia 的 xgboost 包中的冗长内容

types - 如何检查类型的可变性