あなたのPythonコードはうまく機能しません。最近、ウェブサイトが更新されたと思います。彼らが私の知る限りリンクを削除したので、。Gumbo.jlとCascadia.jlを使用した同様の例を次に示します。
組み込みdownload
コマンドを使用してWebページをダウンロードしています。これを一時ファイルのディスクに書き込み、それを文字列に読み取ります。HTTP.jlを使用すると、文字列に直接読み取ることができるため、よりクリーンな場合があります。しかし、この簡単な例では問題ありません
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]
アウトプット
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"
MITが2回リストされているようです。おそらく、私のデモのフィルタリングコードは静かではありません。しかし:shrug:MITは私が聞いた素晴らしい大学です。ジュリアはそこで生まれました:joy: