Web scrapping

ABC DEF
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Witam,

Kopiuj
from bs4 import BeautifulSoup
import json
import time
import requests
import datetime
import re
import sys

#ttps://api.sofascore.com/api/v1/unique-tournament/17/season/17359/events/round/1
url = "https://api.sofascore.com/api/v1/unique-tournament/17/season/17359/events/round/1"
headers = {
         'User-Agent': 'curl/7.64.0',
         'Referer': 'https://www.sofascore.com/pl/turniej/pilka-nozna/england/premier-league/17',
         }
page = requests.get(url, headers=headers)
                
dict_obj = json.loads(page.text)

print(dict_obj)

sys.exit()

Chciałbym pobrać sobie dane ze strony SofaScore.com. Po uruchomieniu tego skryptu dostałem bana na 24h. Co i jak muszę zmienić żeby to się nie powtórzyło jutro?

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 731
0

jak nie mają publicznego API, to nie dziwię się, że masz bana - webscraping jest niedozwolony ;)

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 644
3
  1. Musisz wysyłać żądania dokładnie takie same jak wysyła przeglądarka, zdecydowanie więcej nagłówków itp.
  2. User agent curl to nie jest dobry pomysł na ukrywanie się przed banami.
  3. Używaj proxy, zmieniaj IP co kilka żądań.
  4. Poszukaj alternatyw (może https://www.api-football.com/).
ledi12
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1

Najlepszym sposobem bedzie puszczanie tego requestu przez jakies publiczne proxy. Potestuj np. co 5 requestow zmieniaj ip ;)

michal377
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
1
trojanus napisał(a):

jak nie mają publicznego API, to nie dziwię się, że masz bana - webscraping jest niedozwolony ;)

Nic nie jest prawdą, wszystko jest dozwolone. Każda szanująca się strona posiada plik "robots.txt", który ustala reguły dla wszelkich botów, crawlerów oraz scrapperów (SEO tego używa też). Zapoznaj się z podstawami etyki w scrappingu, jest sporo artykułów na ten temat. Od czasu afery Cambridge Analytica sporo się pozmieniało, to fakt.

ABC DEF
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Rzeczywiście jest takie coś na tej stronie i liczba disallow'ów nie napawa optymizmem:

https://www.sofascore.com/robots.txt

ledi12
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1

Zawsze mozesz sprobowac zrobic to selenium w trybie --headless. Przy odpowiedniej zabawie opoznieniami, czy symulacja clicku, nie powinienes dostac bana.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.