Wpis z mikrobloga

Cześć Mirki,

Chciałbym przeprowadzić badanie na podstawie bazy danych na stronie EUvsDisinfo (https://euvsdisinfo.eu/disinformation-cases/). Zastanawiam się, w jaki sposób mógłbym napisać skrypt tak, żeby przy użyciu biblioteki do scrapowanie (np. request) móc pobierać i ładować do beautifulsoup kolejne strony bazy danych. Stron jest od 1 - 1337.

Uprzedzam, że nie mam żadnego wykształcenia programistycznego i znam tylko podstawy podstaw Pythona.

#python #scraping #naukaprogramowania
  • 5
@kamilm119:

Po zmianie strony zmienia się url

https://euvsdisinfo.eu/disinformation-cases/?offset=10&per_page=10
https://euvsdisinfo.eu/disinformation-cases/?offset=20&per_page=10
.
.
.
https://euvsdisinfo.eu/disinformation-cases/?offset=13360&per_page=10

Wrzucasz sobie w pętle od 0 do 13360, przy każdej iteracj.

Możesz też zwiększyć per_page na 100 np. wtedy mniej requestów pójdzie i po 100 elementów pobierać
@kamilm119: strona 0 ma adres: https://euvsdisinfo.eu/disinformation-cases/?offset=0&per_page=10
gdzie offset=0 jest równy nr strony *10
więc strona 2 będzie miała https://euvsdisinfo.eu/disinformation-cases/?offset=20&per_page=10

wiesz że jest 1337 stron więc ostatnia ma adres
https://euvsdisinfo.eu/disinformation-cases/?offset=13370&per_page=10
dajesz sobie iterację od 2 do 1338
for x in list(range(2,1338)):
page =r"https://euvsdisinfo.eu/disinformation-cases/?offset={}&per_page=10".format(x*10)
reguest.get(page)
print(request.text)

coś takiego tak na szybko

EDIT:
możesz też dać range(20,13380) i nie będziesz musiał robić *10 tylko format(x)