Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

Wpis użytkownika kolorado w Python

Twórca

w Python

2piorunów

Cześć,

potrzebuję pomocy z jedną rzeczą w  . Nie jestem programistą, a robię to właściwie w celach edukacyjnych i utknąłem.

Robię webscraping za pomocą biblioteki BeautifulSoup dla kilkuset stacji Infopasazer, ktore znajdują się na różnych adresach URL. Kwestia dotyczy tego, że czasami strony tych stacji działają, a czasami nie i w momencie, gdy skrypt napotka problem zatrzymuje się i nie robi webscrapingu kolejnych stron. Próbowałem dodać

try:

except (AttributeError, requests.exceptions.Timeout):

pass

natomiast to sprawia, że po prostu nie wywala mi błędów w konsoli, a nie kontynuuje pracę.

Czy ktoś ma pomysł jak można sobie z tym poradzić? Jak będzie trzeba więcej kodu to udostępnię.

Dzięki

Komentarze (4)

Inspirator0piorunów

@kolorado mam nadzieję, że dostaniesz odpowiedź, ja natomiast mam pytanko. Korzystasz z jakiegoś vpna przy scrapowaniu czy yolo bomba na swoim ip? chciałbym zesrapować parę stron, ale boję się, że dostanę bana na ip xD

Gruba ryba1piorunów

@kolorado no bo tak to mniej więcej z tego zdawkowego opisu wynikało że tu będzie problem.

Twórca2piorunów

@wonsz doszedłem do tego, zamiast dla każdego URL dodać osobny try except zrobiłem jeden na cały kod. Dodałem na szybko brakujące dla każdej podstrony i działa.

@Bolec39 myślałem o tym, ale wydaje mi się, że 450 zapytań na godzinę to nie jest chyba jakaś tragedia, dodatkowo to są osobne mikroserwisy więc może się tam nie obrażą

Gruba ryba0piorunów

@kolorado którą drogę ninja wybrałeś?

try:
....pobierz_wszystkie(urls)
except (AttributeError, requests.exceptions.Timeout):
....pass

for url in urls:
....try:
........pobierz_jeden(url)
....except (AttributeError, requests.exceptions.Timeout):
........pass