Mã python của bạn không hoạt động khá. Tôi đoán trang web đã được cập nhật gần đây. Vì họ đã loại bỏ các liên kết xa như tôi có thể nói ,. Đây là một ví dụ tương tự bằng cách sử dụng Gumbo.jl và Cascadia.jl .
Tôi đang sử dụng download
lệnh tích hợp để tải xuống trang web. ghi nó vào đĩa trong một tệp tạm thời, sau đó tôi đọc vào Chuỗi. Có thể sạch hơn khi sử dụng HTTP.jl , có thể đọc thẳng vào Chuỗi. Nhưng với ví dụ đơn giản này, nó ổn
using Gumbo
using Cascadia
url = "https://thebestschools.org/features/best-computer-science-programs-in-the-world/"
page = parsehtml(read(download(url), String))
college_name = String[]
college_location = String[]
sections = eachmatch(sel"section", page.root)
for section in sections
maybe_col_heading = eachmatch(sel"h3.college", section)
if length(maybe_col_heading) == 0
continue
end
col_heading = first(maybe_col_heading)
name = strip(text(last(col_heading.children)))
push!(college_name, name)
loc = first(eachmatch(sel".school-location", section))
push!(college_location, text(loc[1]))
end
[college_name college_location]
Đầu ra
julia> [college_name college_location]
51×2 Array{String,2}:
"Massachusetts Institute of Technology (MIT)" "Cambridge, Massachusetts"
"Massachusetts Institute of Technology (MIT)" "Cambridge, Massachusetts"
"Stanford University" "Stanford, California"
"Carnegie Mellon University" "Pittsburgh, Pennsylvania"
⋮
"Shanghai Jiao Tong University" "Shanghai, China"
"Lomonosov Moscow State University" "Moscow, Russia"
"City University of Hong Kong" "Hong Kong"
Có vẻ như nó đã liệt kê MIT hai lần. có lẽ mã lọc trong bản demo của tôi không yên tĩnh. Nhưng: nhún vai: MIT là một trường đại học tuyệt vời mà tôi nghe thấy. Julia được phát minh ở đó: niềm vui: