web-scraping - 朱莉娅:网站抓取?
问题描述
几天来,我一直在尝试使用这个小代码来从期刊网站获取标题和新闻链接。
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 解析。对于仅提取标题,您可能可以摆脱内置的正则表达式。
如果它变得比这更复杂,则正则表达式不会泛化,您应该使用成熟的 HTML 解析器。 Gumbo.jl
似乎是 Julia 中最先进的,并且具有相当简单的界面。
在后一种情况下,不需要拆分文档;在前者中,它至少使事情变得更复杂,从那时起你必须考虑换行符。所以,最好先解析,然后拆分。
可以使用库Cascadia
git repo提取特定元素
,例如,可以提取 HTML 页面中元素的类属性,以便为返回的查询字符串 (qs) 选择/提取qs = eachmatch(Selector(".classID"),h.root)
所有类元素,例如。<div class="classID">
推荐阅读
- c# - 对一列求和但不断超时 LINQ
- c# - 时间转换器 C#
- html - 选择 tagName 组块 Gutenberg
- amazon-web-services - 如何将域*子目录*(不是子域)指向 AWS EC2 实例
- ios - iOS 使用 FFmpeg+libx264 构建 PJSIP
- php - 在两列中查找两个值
- swift - SwiftUI 小部件不刷新
- python - 在 x 轴上偏移绘图跟踪
- facebook-graph-api - share_open_graph 未采用动态 OG 标签链接或图像
- intellij-idea - 任何 JetBrains IDE:如何将 Ctrl + 鼠标滚轮映射到 Page Up/Down 操作?