Jeśli często pobierasz dane ze stron internetowych, prawdopodobnie powinieneś rozważyć zautomatyzowanie tego procesu. Czasami określany jako „web scraping”, proces ten jest powszechny w przypadku witryn, które nie zapewniają formalnego interfejsu API ani kanału. Oczywiście nic nie osiągniesz, jeśli witryna, którą próbujesz pobrać, jest niedostępna.
Jeśli prowadzisz własną witrynę, prawdopodobnie musiałeś już wcześniej radzić sobie z przestojami. Może to być frustrujące, powodując utratę odwiedzających i przerywanie wszelkich działań, za które może być odpowiedzialna Twoja witryna. W takich okolicznościach opłaca się mieć możliwość łatwego sprawdzenia dostępności Twojej witryny.
Python to świetny język do pisania skryptów, a jego zwięzła, ale czytelna składnia sprawia, że implementacja narzędzia do sprawdzania witryny jest prostym zadaniem.
Tworzenie spersonalizowanego narzędzia do sprawdzania stron internetowych
Kontroler stron internetowych jest dostosowany do obsługi wielu stron internetowych jednocześnie. Umożliwia to łatwą zmianę witryn, na których już nie zależy, lub rozpoczęcie sprawdzania witryn, które uruchomisz w przyszłości. Kontroler jest idealną „aplikacją szkieletową”, na której można dalej budować, ale demonstruje podstawowe podejście do pobierania danych internetowych.
Importuj biblioteki w Pythonie
Aby rozpocząć projekt, musisz zaimportować upraszanie biblioteka w Pythonie z import funkcjonować.
import upraszanie
Biblioteka Requests jest przydatna do komunikowania się ze stronami internetowymi. Możesz go używać do wysyłania żądań HTTP i odbierania danych odpowiedzi.
Przechowuj adresy URL witryn na liście
Po zaimportowaniu biblioteki należy zdefiniować i przechowywać adresy URL witryn internetowych na liście. Ten krok pozwala zachować wiele adresów URL, które można sprawdzić za pomocą narzędzia do sprawdzania witryny.
import upraszanie
adres_url = [
" https://www.google.co.w",
" https://www.yahoo.com",
" https://www.amazon.co.w",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]
Zmienna Adres URL witryny przechowuje listę adresów URL. Na liście zdefiniuj każdy adres URL, który chcesz sprawdzić, jako osobny ciąg. Możesz użyć przykładowych adresów URL w kodzie do testowania lub możesz je zastąpić, aby od razu zacząć sprawdzać własne witryny.
Następnie zapisz wiadomości dla wspólnych Kody odpowiedzi HTTP. Możesz przechowywać je w słowniku i indeksować każdą wiadomość według odpowiedniego kodu statusu. Twój program może wtedy używać tych komunikatów zamiast kodów stanu, aby zapewnić lepszą czytelność.
statusy = {
200: "Witryna dostępna",
301: "Stałe przekierowanie",
302: "Tymczasowe przekierowanie",
404: "Nie znaleziono",
500: "Wewnętrzny błąd serwera",
503: "Serwis niedostępny"
}
Tworzenie pętli do sprawdzania stanu witryny
Aby sprawdzić każdy adres URL po kolei, będziesz chciał zapętlić listę stron internetowych. Wewnątrz pętli sprawdź stan każdej witryny, wysyłając żądanie za pośrednictwem biblioteki żądań.
dla adres URL w Adres URL witryny:
próbować:
web_response = request.get (url)
drukuj (url, statusy[web_response.status_code])
oprócz:
drukuj (url, statusy[web_response.status_code])
Gdzie:
- dla adresu URL...iteruje po liście adresów URL.
- adres URL jest zmienną, do której pętla for przypisuje każdy adres URL.
- spróbuj/opróczobsługuje wszelkie wyjątki które mogą się pojawić.
- web_respons jest zmienną, która dostarcza właściwość z kodem statusu odpowiedzi
Cały fragment kodu
Jeśli wolisz przejrzeć cały kod za jednym razem, oto pełna lista kodów w celach informacyjnych.
import upraszanie
adres_url = [
" https://www.google.co.w",
" https://www.yahoo.com",
" https://www.amazon.co.w",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]statusy = {
200: "Witryna dostępna",
301: "Stałe przekierowanie",
302: "Tymczasowe przekierowanie",
404: "Nie znaleziono",
500: "Wewnętrzny błąd serwera",
503: "Serwis niedostępny"
}dla adres URL w Adres URL witryny:
próbować:
web_response = request.get (url)
drukuj (url, statusy[web_response.status_code])
oprócz:
drukuj (url, statusy[web_response.status_code])
A oto przykładowe uruchomienie kodu:
Możliwości kodowania Pythona w Web Scraping
Biblioteki innych firm Pythona są idealne do zadań takich jak skrobanie stron internetowych i pobieranie danych przez HTTP.
Możesz wysyłać automatyczne prośby do stron internetowych w celu wykonania różnego rodzaju zadań. Może to obejmować czytanie nagłówków wiadomości, pobieranie obrazów i automatyczne wysyłanie e-maili.