Ich möchte die Namen der Universitäten und ihrer Websites von dieser Website in Listen extrahieren .
In Python habe ich es mit BeautifulSoup v4 gemacht:
import requests
from bs4 import BeautifulSoup
import pandas as pd
page = requests.get('https://thebestschools.org/features/best-computer-science-programs-in-the-world/')
content = BeautifulSoup(page.text, 'html.parser')
college_name = []
college_link = []
college_name_list = content.find_all('h3',class_='college')
for college in college_name_list:
if college.find('a'):
college_name.append(college.find('a').text)
college_link.append(college.find('a')['href'])
Ich programmiere sehr gerne in Julia und da es Python sehr ähnlich ist, wollte ich wissen, ob ich auch in Julia Web Scraping machen kann. Jede Hilfe wäre dankbar.
web-scraping
julia
PseudoCodeNerd
quelle
quelle
Antworten:
Ihr Python-Code funktioniert nicht ganz. Ich denke, die Website wurde kürzlich aktualisiert. Da sie die Links entfernt haben, soweit ich das beurteilen kann. Hier ist ein ähnliches Beispiel mit Gumbo.jl und Cascadia.jl .
Ich verwende den eingebauten
download
Befehl, um die Webseite herunterzuladen. Das schreibt es auf die Festplatte in einer temporären Datei, die ich dann in String einlese. Es könnte sauberer sein, HTTP.jl zu verwenden , das es direkt in einen String einlesen könnte. Aber für dieses einfache Beispiel ist es in OrdnungAusgänge
Scheint, als wäre MIT zweimal gelistet. Wahrscheinlich ist der Filtercode in meiner Demo nicht ganz richtig. Aber: Achselzucken: MIT ist eine großartige Universität, die ich höre. Julia wurde dort erfunden: Freude:
quelle
Ja.
Für das Web-Scraping verfügt Julia über drei Bibliotheken:
requests
Bibliothek),Ich habe gesehen, dass Sie jung (16) aus Ihrem Profil sind und Ihre Python-Implementierung auch korrekt ist.
Daher würde ich Ihnen empfehlen, mit diesen drei Bibliotheken eine Web-Scraping-Aufgabe durchzuführen, um besser zu verstehen, wie sie funktionieren.
Die Aufgabe, die Sie leider ausführen möchten, kann mit Cascadia noch nicht ausgeführt werden, da sich das
h3
in einem<span>
befindet, das derzeit kein in Cascadia.jl Source implementierter SelectorType istquelle
span
alleine funktioniert gut? Über CSS-Stilauswahl