Quero extrair os nomes das universidades e seus sites deste site em listas.
Em Python, eu fiz isso com o BeautifulSoup v4:
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'])
Eu realmente gosto de programar em Julia e, como é muito parecido com o Python, eu queria saber se também posso fazer scraping na Web. Qualquer ajuda seria apreciada.
web-scraping
julia
PseudoCodeNerd
fonte
fonte
Respostas:
Seu código python não funciona muito bem. Eu acho que o site foi atualizado recentemente. Desde que eles removeram os links, tanto quanto eu posso dizer ,. Aqui está um exemplo semelhante usando Gumbo.jl e Cascadia.jl .
Estou usando o
download
comando interno para baixar a página da web. que grava no disco em um arquivo temporário, que eu leio em String. Pode ser mais limpo usar o HTTP.jl , que pode ser lido diretamente em uma String. Mas, para este exemplo simples, tudo bemSaídas
Parece que listou o MIT duas vezes. provavelmente o código de filtragem na minha demonstração não está tranquilo. Mas: encolher de ombros: o MIT é uma ótima universidade que eu ouvi. Julia foi inventada lá: alegria:
fonte
Sim.
Para fins de raspagem na web, Julia possui três bibliotecas:
requests
biblioteca do python ),Vi que você é jovem (16) no seu perfil e sua implementação em python também está correta.
Portanto, sugiro que você tente executar uma tarefa de raspagem da Web com essas três bibliotecas para entender melhor como elas funcionam.
A tarefa que você deseja fazer, infelizmente, ainda não pode ser realizado com Cascadia desde o
h3
é em um<span>
que atualmente não é uma SelectorType implementado em Cascadia.jlFonte
fonte
span
por si só funciona bem? Via seletores de estilo CSS