chcesz pomóc? Oto dostępne opcje:","Crunchbase","O nas","Dziękujemy wszystkim za niesamowite wsparcie!","Szybkie łącza","Program partnerski","ProxyScrape wersja próbna premium","Online Proxy Checker","Typy proxy","Kraje zastępcze","Przypadki użycia proxy","Ważne","Polityka plików cookie","Zastrzeżenie","Polityka prywatności","Zasady i warunki","Media społecznościowe","Facebook","LinkedIn","Twitter","Quora","Telegram","Discord"," © Copyright 2024 - Thib BV | Brugstraat 18 | 2812 Mechelen | Belgia | VAT BE 0749 716 760"]}
Web scraping is the art of extracting data from a website in an automated and well-structured form. There could be different formats for scraping data like excel, CSV, and many more. Some practical use cases of web scraping are market research, price monitoring, price intelligence, market research, and lead generation. Web scraping is an instrumental
Web scraping to sztuka wyodrębniania danych ze strony internetowej w zautomatyzowanej i dobrze zorganizowanej formie. Mogą istnieć różne formaty skrobania danych, takie jak Excel, CSV i wiele innych. Niektóre praktyczne zastosowania web scrapingu to badania rynku, monitorowanie cen, analiza cen, badania rynku i generowanie leadów. Web scraping jest instrumentalną techniką pozwalającą na jak najlepsze wykorzystanie publicznie dostępnych danych i podejmowanie mądrzejszych decyzji. Dlatego każdy powinien znać przynajmniej podstawy web scrapingu, aby móc z niego korzystać.
W tym artykule omówimy podstawy skrobania stron internetowych, bawiąc się frameworkiem Pythona o nazwie Beautiful Soup. Naszym środowiskiem programistycznym będzie Google Colab.
Teraz zobaczyliśmy, jak działa proces skrobania stron internetowych. Zacznijmy od kodowania,
Krok 1: Instalacja bibliotek firm trzecich
W większości przypadków Colab jest dostarczany z już zainstalowanymi pakietami innych firm. Ale nadal, jeśli instrukcje importu nie działają, możesz rozwiązać ten problem, instalując kilka pakietów za pomocą następujących poleceń,
pip install requests
pip install html5lib
pip install bs4
Krok 2: Uzyskanie dostępu do zawartości HTML ze strony internetowej
importuj żądania
URL = "http://www.values.com/inspirational-quotes"
r = requests.get(URL)
print(r.content)
Wyświetli on dane wyjściowe formularza,
Spróbujmy zrozumieć ten fragment kodu,
Krok 3: Analizowanie zawartości HTML
import requests
from bs4 import BeautifulSoup
URL = "http://www.values.com/inspirational-quotes"
r = requests.get(URL)
soup = BeautifulSoup(r.content, 'html5lib') # Jeśli ta linia powoduje błąd, uruchom 'pip install html5lib' lub zainstaluj html5lib
print(soup.prettify())
Wyjście:
Daje to bardzo długi wynik; niektóre zrzuty ekranu są załączone poniżej.
Jedną z największych zalet Beautiful Soup jest to, że jest on oparty na bibliotekach parsujących HTML, takich jak html5lib, html.parse, lxml itp., co pozwala na jednoczesne tworzenie obiektu Beautiful Soap i określanie biblioteki parsera.
W powyższym kodzie utworzyliśmy obiekt Beautiful Soup, przekazując dwa argumenty:
r.content: Surowa zawartość HTML.
html5lib: Określa parser HTML, którego chcemy użyć.
Na koniec wypisywana jest funkcja soup.prettify(), która nadaje drzewu parsowania wizualną reprezentację z surowej zawartości HTML.
Krok 4: Przeszukiwanie i nawigacja po drzewie parsowania
Teraz nadszedł czas, aby wyodrębnić niektóre przydatne dane z treści HTML. Obiekty soup zawierają dane w formie zagnieżdżonej struktury, które mogą być dalej wyodrębniane programowo. W naszym przypadku skrobiemy stronę internetową składającą się z kilku cytatów. Stworzymy więc program, który rozwiąże te cytaty. Kod znajduje się poniżej,
#Python program to scrape website
#and save quotes from website
import requests
from bs4 import BeautifulSoup
import csv
URL = "http://www.values.com/inspirational-quotes"
r = requests.get(URL)
soup = BeautifulSoup(r.content, 'html5lib')
quotes=[] # a list to store quotes
table = soup.find('div', attrs = {'id':'all_quotes'})
for row in table.findAll('div', attrs = {'class':'col-6 col-lg-3 text-center margin-30px-bottom sm-margin-30px-top'}):
quote = {}
quote['theme'] = row.h5.text
quote['url'] = row.a['href']
quote['img'] = row.img['src']
quote['lines'] = row.img['alt'].split(" #")[0]
quote['author'] = row.img['alt'].split(" #")[1]
quotes.append(quote)
filename = 'inspirational_quotes.csv'
with open(filename, 'w', newline='') as f:
w = csv.DictWriter(f,['theme','url','img','lines','author'])
w.writeheader()
for quote in quotes:
w.writerow(quote)
Przed przejściem dalej zaleca się przejrzenie zawartości HTML strony internetowej, którą wydrukowaliśmy za pomocą metody soup.prettify() i spróbowanie znalezienia wzorca nawigacji do cytatów.
Teraz wyjaśnię, jak to zrobić w powyższym kodzie,
Jeśli przejdziemy przez cytaty, okaże się, że wszystkie cytaty znajdują się wewnątrz kontenera div, którego identyfikator to "all_quotes". Znajdziemy więc ten element div (określany w kodzie jako tabela) za pomocą metody find():
table = soup.find('div', attrs = {'id':'all_quotes'})
Pierwszym argumentem tej funkcji jest znacznik HTML, który należy wyszukać. Drugim argumentem jest element typu słownikowego określający dodatkowe atrybuty związane z tym znacznikiem. metoda find() zwraca pierwszy pasujący element. Można wypróbować table.prettify(), aby lepiej zrozumieć działanie tego fragmentu kodu.
Jeśli skupimy się na elemencie table, kontener div zawiera każdy cytat, którego klasą jest quote. Przejdziemy więc pętlą przez każdy kontener div, którego klasą jest quote.
Tutaj bardzo przydatna jest metoda findAll(), która jest podobna do metody find() pod względem argumentów, ale główną różnicą jest to, że zwraca listę wszystkich pasujących elementów.
Iterujemy po każdym cytacie używając zmiennej o nazwie row.
Przeanalizujmy przykładową zawartość wiersza HTML dla lepszego zrozumienia:
Rozważmy teraz następujący fragment kodu:
for row in table.findAll('div', attrs = {'class':'col-6 col-lg-3 text-center margin-30px-bottom sm-margin-30px-top'}):
quote = {}
quote['theme'] = row.h5.text
quote['url'] = row.a['href']
quote['img'] = row.img['src']
quote['lines'] = row.img['alt'].split(" #")[0]
quote['author'] = row.img['alt'].split(" #")[1]
quotes.append(quote)
filename = 'inspirational_quotes.csv'
with open(filename, 'w', newline='') as f:
w = csv.DictWriter(f,['theme','url','img','lines','author'])
w.writeheader()
for quote in quotes:
w.writerow(quote)
Tutaj tworzymy słownik, aby zapisać wszystkie informacje o cytacie. Notacja kropkowa służy do uzyskiwania dostępu do zagnieżdżonej struktury. Aby uzyskać dostęp do tekstu wewnątrz elementu HTML, używamy .text:
Co więcej, możemy również dodawać, usuwać, modyfikować i uzyskiwać dostęp do atrybutów tagu. Zrobiliśmy to, traktując tag jako słownik:
quote['url'] = row.a['href']
Następnie dołączyliśmy wszystkie cytaty do listy o nazwie quotes.
Na koniec wygenerujemy plik CSV, który posłuży do zapisania naszych danych.
filename = 'inspirational_quotes.csv'
Nazwaliśmy nasz plik inspirational_qoutes.csv i zapisaliśmy w nim wszystkie cytaty, aby móc z nich korzystać także w przyszłości. Oto jak wygląda nasz plik inspirational_quotes.csv,
W powyższym wyniku pokazaliśmy tylko trzy wiersze, ale w rzeczywistości jest ich 33. Oznacza to, że wyodrębniliśmy znaczną ilość danych ze strony internetowej, wykonując tylko prostą próbę.
Uwaga: W niektórych przypadkach skrobanie stron internetowych jest uważane za nielegalne, co może spowodować trwałe zablokowanie adresu IP przez stronę internetową. Należy więc zachować ostrożność i skrobać tylko te witryny i strony internetowe, które na to pozwalają.
Niektóre z rzeczywistych scenariuszy, w których skrobanie stron internetowych może być niezwykle przydatne, to,
Generowanie leadów
Jednym z kluczowych działań sprzedażowych dla większości firm jest generowanie leadów. Według raportu Hubspot, generowanie ruchu i leadów było priorytetem numer jeden dla 61% inbound marketerów. Skrobanie stron internetowych może odegrać w tym rolę, umożliwiając marketerom dostęp do uporządkowanych list potencjalnych klientów w całym Internecie.
Badania rynku
Przeprowadzanie właściwych badań rynkowych jest najważniejszym elementem każdego prowadzonego biznesu, a zatem wymaga bardzo dokładnych informacji. Analiza rynku jest napędzana przez dużą ilość, wysoką jakość i bardzo wnikliwe skrobanie stron internetowych, które mogą mieć różne rozmiary i kształty. Dane te mogą być bardzo przydatnym narzędziem do przeprowadzania analizy biznesowej. Badania rynku koncentrują się głównie na następujących aspektach biznesowych:
Tworzenie ofert
Skrobanie stron internetowych może być bardzo przydatną i owocną techniką tworzenia ofert zgodnie z typami działalności, na przykład nieruchomościami i sklepami eCommerce. Narzędzie do skrobania stron internetowych może pomóc firmie przeglądać tysiące ofert produktów konkurencji w ich sklepie i zbierać wszystkie niezbędne informacje, takie jak ceny, szczegóły produktu, warianty i recenzje. Można to zrobić w ciągu zaledwie kilku godzin, co może dodatkowo pomóc w tworzeniu własnych ofert, koncentrując się w ten sposób bardziej na wymaganiach klientów.
Porównaj informacje
Web scraping pomaga różnym firmom gromadzić i porównywać informacje oraz dostarczać te dane w znaczący sposób. Rozważmy strony porównujące ceny, które wyodrębniają recenzje, funkcje i wszystkie istotne szczegóły z różnych innych stron internetowych. Szczegóły te mogą być kompilowane i dostosowywane w celu łatwego dostępu. W ten sposób można wygenerować listę od różnych sprzedawców detalicznych, gdy kupujący wyszukuje określony produkt. W związku z tym skrobanie stron internetowych znacznie ułatwi konsumentowi proces podejmowania decyzji, pokazując różne analizy produktów zgodnie z zapotrzebowaniem konsumentów.
Informacje zbiorcze
Web scraping może pomóc w agregowaniu informacji i wyświetlaniu ich w zorganizowanej formie dla użytkownika. Rozważmy przypadek agregatorów wiadomości. Web scraping będzie wykorzystywany w następujący sposób,
W tym artykule przeprowadziliśmy dogłębną analizę tego, jak działa skrobanie stron internetowych, biorąc pod uwagę praktyczny przypadek użycia. Wykonaliśmy również bardzo proste ćwiczenie polegające na stworzeniu prostego skrobaka internetowego w Pythonie. Teraz możesz skrobać dowolne inne strony internetowe. Ponadto widzieliśmy również kilka rzeczywistych scenariuszy, w których skrobanie stron internetowych może odgrywać znaczącą rolę. Mamy nadzieję, że artykuł się podobał i wszystko było jasne, interesujące i zrozumiałe.
Jeśli szukasz niesamowitych usług proxy dla swoich projektów skrobania stron internetowych, nie zapomnij spojrzeć na ProxyScrapeproxy dla użytkowników indywidualnych i proxy premium.