Zdrap stronę internetową za pomocą tego pięknego samouczka Pythona zupy

Beautiful Soup to biblioteka Pythona o otwartym kodzie źródłowym. Wykorzystuje parsery nawigacyjne do zeskrobywania zawartości plików XML i HTML. Potrzebujesz danych do kilku celów analitycznych. Jednakże, jeśli jesteś nowy w Pythonie i web scrapingu, biblioteka Beautiful Soup Pythona jest warta wypróbowania w projekcie web scrapingu.

Dzięki otwartej bibliotece Beautiful Soup w Pythonie możesz uzyskać dane przez zbieranie dowolnej części lub elementu strony internetowej z maksymalną kontrolą nad procesem. W tym artykule przyjrzymy się, jak wykorzystać Beautiful Soup do zeskrobania strony internetowej.

Jak zainstalować piękną zupę i zacząć z nią korzystać?

Zanim przejdziemy dalej, w tym samouczku Beautiful Soup użyjemy Pythona 3 i beautifulsoup4 , najnowszej wersji Beautiful Soup. Upewnij się, że tworzysz środowisko wirtualne Pythona, aby odizolować projekt i jego pakiety od tych na komputerze lokalnym.

Aby rozpocząć, musisz zainstalować bibliotekę Beautiful Soup w swoim środowisku wirtualnym. Beautiful Soup jest dostępny jako pakiet PyPi dla wszystkich systemów operacyjnych, więc możesz go zainstalować za pomocą polecenia pip install beautifulsoup4 za pośrednictwem terminala.

Jeśli jednak korzystasz z Debiana lub Linuxa, powyższe polecenie nadal działa, ale możesz je zainstalować za pomocą menedżera pakietów, uruchamiając apt-get install python3-bs4 .

Piękna zupa nie pobiera bezpośrednio adresów URL. Działa tylko z gotowymi plikami HTML lub XML. Oznacza to, że nie możesz bezpośrednio przekazać do niego adresu URL. Aby rozwiązać ten problem, musisz uzyskać adres URL docelowej strony internetowej z biblioteką żądań Pythona przed przesłaniem go do Beautiful Soup.

Aby udostępnić tę bibliotekę dla swojego skrobaka, uruchom polecenie pip install request za pośrednictwem terminala.

Aby użyć biblioteki parsera XML, uruchom pip install lxml, aby ją zainstalować.

Sprawdź stronę internetową, którą chcesz zeskrobać

Przed zeskrobaniem jakiejkolwiek strony internetowej, której nie znasz, najlepszą praktyką jest sprawdzenie jej elementów. Możesz to zrobić, przełączając przeglądarkę w tryb programisty. Korzystanie z Chrome DevTools jest dość łatwe, jeśli korzystasz z Google Chrome.

Jednak konieczne jest sprawdzenie strony internetowej, aby dowiedzieć się więcej o jej tagach HTML, atrybutach, klasach i identyfikatorach. W ten sposób ujawniają się podstawowe elementy strony internetowej i jej typy zawartości.

Pomaga również opracować najlepsze strategie, których możesz użyć, aby uzyskać dokładne dane ze strony internetowej i jak je uzyskać.

Jak zeskrobać dane strony internetowej za pomocą pięknej zupy?

Teraz, gdy masz już wszystko gotowe, otwórz preferowany edytor kodu i utwórz nowy plik Pythona, nadając mu wybraną nazwę. Możesz jednak również skorzystać z internetowych IDE, takich jak Jupyter Notebook, jeśli nie znasz obsługi Pythona za pomocą wiersza poleceń.

Następnie zaimportuj niezbędne biblioteki:

from bs4 import BeautifulSoup import requests

Najpierw zobaczmy, jak działa biblioteka żądań:

from bs4 import BeautifulSoup import requests website = requests.get('http://somewebpages.com') print(website)

Po uruchomieniu powyższego kodu zwraca on status 200, co oznacza, że ​​żądanie zostało pomyślnie wykonane. W przeciwnym razie otrzymasz status 400 lub kilka innych statusów błędów, które wskazują na nieudane żądanie GET.

Pamiętaj, aby zawsze zastąpić adres URL witryny w nawiasie docelowym adresem URL.

Po uzyskaniu witryny z żądaniem pobierania , przekazujesz ją do Beautiful Soup, która może teraz odczytać zawartość jako pliki HTML lub XML za pomocą wbudowanego parsera XML lub HTML, w zależności od wybranego formatu.

Spójrz na następny fragment kodu, aby zobaczyć, jak to zrobić za pomocą parsera HTML:

from bs4 import BeautifulSoup import requests website = requests.get('http://somewebpages.com') soup = BeautifulSoup(website.content, 'html.parser') print(soup)

Powyższy kod zwraca cały DOM strony internetowej wraz z jej zawartością.

Możesz również uzyskać bardziej wyrównaną wersję DOM, używając metody upiększania . Możesz to wypróbować, aby zobaczyć jego wyniki:

from bs4 import BeautifulSoup import requests website = requests.get('http://somewebpages.com/') soup = BeautifulSoup(website.content, 'html.parser') print(soup.prettify())

Możesz również uzyskać czystą zawartość strony internetowej bez ładowania jej elementu za pomocą metody .text :

from bs4 import BeautifulSoup import requests website = requests.get('http://somewebpages.com/') soup = BeautifulSoup(website.content, 'html.parser') print(soup.text)

Jak zeskrobać zawartość strony internetowej według nazwy tagu?

Możesz także zeskrobać zawartość w konkretnym tagu za pomocą Pięknej zupy. Aby to zrobić, musisz podać nazwę tagu docelowego w swoim żądaniu zgarniacza Piękna zupa.

Na przykład zobaczmy, jak uzyskać zawartość w tagach h2 strony internetowej.

from bs4 import BeautifulSoup import requests website = requests.get('http://somewebpages.com/') soup = BeautifulSoup(website.content, 'html.parser') print(soup.h2)

W powyższym fragmencie kodu soup.h2 zwraca pierwszy element h2 strony internetowej i ignoruje resztę. Aby załadować wszystkie elementy h2 , możesz użyć wbudowanej funkcji find_all i pętli for w Pythonie:

from bs4 import BeautifulSoup import requests website = requests.get('http://somewebpages.com/') soup = BeautifulSoup(website.content, 'html.parser') h2tags = soup.find_all('h2') for soups in h2tags: print(soups)

Ten blok kodu zwraca wszystkie elementy h2 i ich zawartość. Możesz jednak pobrać zawartość bez ładowania tagu, używając metody .string :

from bs4 import BeautifulSoup import requests website = requests.get('http://somewebpages.com/') soup = BeautifulSoup(website.content, 'html.parser') h2tags = soup.find_all('h2') for soups in h2tags: print(soups.string)

Możesz użyć tej metody dla dowolnego tagu HTML. Wszystko, co musisz zrobić, to zastąpić tag h2 tym, który Ci się podoba.

Możesz jednak również zeskrobać więcej tagów, przekazując listę tagów do metody find_all . Na przykład poniższy blok kodu zeskrobuje zawartość znaczników a , h2 i title :

from bs4 import BeautifulSoup import requests website = requests.get('http://somewebpages.com/') soup = BeautifulSoup(website.content, 'html.parser') tags = soup.find_all(['a', 'h2', 'title']) for soups in tags: print(soups.string)

Jak zeskrobać stronę internetową za pomocą identyfikatora i nazwy klasy

Po sprawdzeniu strony internetowej za pomocą DevTools, możesz dowiedzieć się więcej o atrybutach id i class, które przechowują każdy element w jego DOM. Gdy masz tę informację, możesz zeskrobać tę stronę za pomocą tej metody. Jest to przydatne, gdy zawartość docelowego komponentu wymyka się z bazy danych.

Możesz użyć metody find dla zgarniaczy identyfikatora i klasy. W przeciwieństwie do metody find_all , która zwraca obiekt iterowalny, metoda find działa na pojedynczym, nieiterowalnym miejscu docelowym, którym w tym przypadku jest identyfikator . Nie musisz więc używać z nim pętli for .

Spójrzmy na przykład, jak możesz zeskrobać zawartość poniższej strony za pomocą identyfikatora:

from bs4 import BeautifulSoup import requests website = requests.get('http://somewebpages.com/') soup = BeautifulSoup(website.content, 'html.parser') id = soup.find(id = 'enter the target id here') print(id.text)

Aby to zrobić za pomocą nazwy klasy, wymień id z klasą . Jednak pisanie klasy bezpośrednio powoduje zamieszanie składniowe, ponieważ Python postrzega ją jako słowo kluczowe. Aby ominąć ten błąd, musisz napisać podkreślenie przed klasą w ten sposób: class_ .

W istocie linia zawierająca identyfikator staje się:

my_classes = soup.find(class_ = 'enter the target class name here') print(my_classes.text)

Możesz jednak również zeskrobać stronę internetową, wywołując określoną nazwę tagu z odpowiadającym jej identyfikatorem lub klasą:

data = soup.find_all('div', class_ = 'enter the target class name here') print(data)

Jak zrobić skrobak wielokrotnego użytku z piękną zupą?

Możesz utworzyć klasę i umieścić cały poprzedni kod razem w funkcji w tej klasie, aby utworzyć skrobak wielokrotnego użytku, który pobiera zawartość niektórych tagów i ich identyfikatory. Możemy to zrobić, tworząc funkcję, która przyjmuje pięć argumentów: adres URL, dwie nazwy znaczników i odpowiadające im identyfikatory lub klasy.

Załóżmy, że chcesz zeskrobać cenę koszul z witryny e-commerce. Poniższa przykładowa klasa skrobaka wyodrębnia tagi ceny i koszuli z odpowiadającymi im identyfikatorami lub klasami, a następnie zwraca je jako ramkę danych Pandy z nazwami kolumn „Cena” i Nazwa_koszulki.

Upewnij się, że instalujesz pandy przez terminal, jeśli jeszcze tego nie zrobiłeś.

import pandas as pd class scrapeit: try: def scrape(website=None, tag1=None, id1=None, tag2=None, id2=None): if not (website and tag1 and id1 and tag2 and id2)==None: try: page = requests.get(website) soup = BeautifulSoup(page.content, 'html.parser') infotag1 = soup.find_all(tag1, id1) infotag2 = soup.find_all(tag2, id2) priced = [prices.text for prices in infotag1] shirt = [shirts.text for shirts in infotag2] data = { 'Price':priced, 'Shirt_name':shirt} info = pd.DataFrame(data, columns=['Price', 'Shirt_name']) print(info) except: print('Not successful') else: print('Oops! Please enter a website, two tags and thier corresponding ids') except: print('Not successful!')

Skrobaczka, którą właśnie stworzyłeś, jest modułem wielokrotnego użytku i możesz go zaimportować i użyć w innym pliku Pythona. Aby wywołać funkcję scrape z jej klasy, użyj scrapeit.scrape('Adres URL witryny', 'price_tag', 'price_id', 'shirt_tag', 'shirt_id') . Jeśli nie podasz adresu URL i innych parametrów, instrukcja else poprosi o to.

Aby użyć tego scaper w innym pliku Pythona, możesz go zaimportować w ten sposób:

from scraper_module import scrapeit scrapeit.scrape('URL', 'price_tag', 'price_id', 'shirt_tag', 'shirt_id')

Uwaga: scraper_module to nazwa pliku Pythona zawierającego klasę scraper.

Możesz również sprawdzić dokumentację Pięknej zupy, jeśli chcesz zagłębić się w to, jak najlepiej ją wykorzystać.

Piękna zupa to cenne narzędzie do skrobania sieci

Beautiful Soup to potężny program do zgarniania ekranu w Pythonie, który zapewnia kontrolę nad tym, w jaki sposób Twoje dane przechodzą podczas skrobania. Jest to cenne narzędzie biznesowe, ponieważ umożliwia dostęp do danych internetowych konkurencji, takich jak ceny, trendy rynkowe i nie tylko.

Chociaż w tym artykule stworzyliśmy narzędzie do skrobania tagów, nadal możesz bawić się tą potężną biblioteką Pythona, aby tworzyć bardziej przydatne narzędzia do skrobania.


Jak obliczyć wartość nCr

Jak obliczyć wartość nCr

Kombinacja to pojęcie matematyczne. Odnosi się do ułożenia kilku przedmiotów, gdzie ich kolejność nie ma znaczenia. Podstawowa formuła opisuje liczbę prawidłowych kombinacji.

Jak napisać i skompilować swój pierwszy kod Solidity?

Jak napisać i skompilować swój pierwszy kod Solidity?

Solidity to język programowania używany przez inteligentne kontrakty na blockchainie Ethereum. Jest to statyczny, zorientowany obiektowo język programowania.

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

Jak znaleźć N-cyfrowe idealne sześciany i kwadraty za pomocą Pythona, C++ i JavaScript

Jak znaleźć N-cyfrowe idealne sześciany i kwadraty za pomocą Pythona, C++ i JavaScript

Wielu programistów uwielbia rozwiązywać trudne problemy matematyczne za pomocą kodu. Pomaga wyostrzyć umysł i poprawić umiejętności rozwiązywania problemów. W tym artykule dowiesz się, jak znaleźć najmniejsze i największe n-cyfrowe idealne kwadraty i sześciany za pomocą Pythona, C++ i JavaScript. Każdy przykład zawiera również przykładowe dane wyjściowe dla kilku różnych wartości.

Jak używać Pythona jako kalkulatora wiersza poleceń

Jak używać Pythona jako kalkulatora wiersza poleceń

Chociaż możesz używać kalkulatora graficznego na swoim komputerze, interpreter języka programowania Python może pełnić funkcję kalkulatora biurkowego. Jest to tak popularny żart na temat biegania w społeczności Pythona, że ​​wspomniano o nim w oficjalnym samouczku. Oto, jak używać Pythona jako kalkulatora.

Jak osadzić tweety w swoich postach WordPress

Jak osadzić tweety w swoich postach WordPress

Umieszczanie usług stron trzecich w swoich postach WordPress to ekscytujący sposób na przyciągnięcie zainteresowania odwiedzających. Osadzone treści zawierają również wskazówki wizualne, które ułatwiają skanowanie. WordPress ułatwił dodawanie tego typu treści.

Rozpocznij pracę z notatnikiem Jupyter: samouczek

Rozpocznij pracę z notatnikiem Jupyter: samouczek

Jeśli jesteś początkującym naukowcem zajmującym się danymi, który pracuje z Pythonem lub R, musisz wiedzieć, jak korzystać z Jupyter Notebook. Jest to środowisko IDE typu open source i serwerowe do manipulowania danymi, udostępniania kodu na żywo, a także zarządzania przepływem pracy w nauce o danych.

Kodowanie nie jest dla wszystkich: 9 stanowisk technicznych, które można uzyskać bez niego

Kodowanie nie jest dla wszystkich: 9 stanowisk technicznych, które można uzyskać bez niego

Tech to bez wątpienia branża przyszłości. Jeśli jesteś jednym z milionów młodych dorosłych, którzy mają rozpocząć pierwszy etap swojej kariery, być może zastanawiasz się, co zrobić, jeśli nie lubisz kodować.

7 ważnych poleceń, które pomogą rozpocząć pracę z Pythonem dla początkujących

7 ważnych poleceń, które pomogą rozpocząć pracę z Pythonem dla początkujących

Nauka nowego języka programowania, takiego jak Python, staje się bezproblemowa, jeśli masz kompleksową mapę drogową, szczegółowo opisującą koncepcje, których należy się nauczyć jako początkujący i jak robić dalsze postępy, aby osiągnąć kolejny kamień milowy. Nawet średniozaawansowani programiści powinni często odświeżyć swoje podstawy, aby zbudować dla siebie solidną podstawę.

Twoja pierwsza aplikacja internetowa ASP.NET: jak zacząć

Twoja pierwsza aplikacja internetowa ASP.NET: jak zacząć

ASP.NET to bezpłatna wieloplatformowa platforma firmy Microsoft do tworzenia aplikacji i usług internetowych. Platforma ASP.NET jest rozszerzeniem .NET, platformy programistycznej narzędzi, języków programowania i bibliotek używanych do tworzenia różnych aplikacji.

9 najlepszych alternatyw dla platformy Docker do zarządzania kontenerami

9 najlepszych alternatyw dla platformy Docker do zarządzania kontenerami

Kontenery są bardzo przydatne przy opracowywaniu, wdrażaniu i zarządzaniu oprogramowaniem w środowisku wirtualnym. Docker jest przydatny w procesie konteneryzacji, ale nie jest jedyną platformą. Jeśli szukasz alternatyw dla Dockera, nie szukaj dalej. Ta lista przedstawia niektóre bogate w funkcje i wydajne alternatywy platformy Docker, które można wykorzystać w następnym projekcie.

Czy ARCore lub ARKit są lepsze do tworzenia doświadczeń w rozszerzonej rzeczywistości?

Czy ARCore lub ARKit są lepsze do tworzenia doświadczeń w rozszerzonej rzeczywistości?

Niektóre z najczęściej omawianych aplikacji mobilnych i doświadczeń w dzisiejszych czasach wykorzystują technologię rozszerzonej rzeczywistości. Podczas gdy niektóre z tych doświadczeń mogą działać na praktycznie każdym urządzeniu mobilnym, inne działają tylko na nowszych i droższych modelach. Tworzenie i używanie tych bardziej zaawansowanych środowisk wymaga ARCore i ARKit.

Jak stworzyć nową gałąź w Git

Jak stworzyć nową gałąź w Git

Gałęzie są kluczowe dla koncepcji kontroli wersji w programowaniu, aw szczególności w Git. W tym artykule startowym dowiesz się, czym jest gałąź i jak ją utworzyć przy użyciu wielu różnych narzędzi.

Jak używać instrukcji if w Pythonie?

Jak używać instrukcji if w Pythonie?

Instrukcja if jest siłą napędową programowania logicznego. W rezultacie lepsze zrozumienie Pythona jest znaczącym dodatkiem do twoich umiejętności programowania w Pythonie.

5 najlepszych odznak, które wzmocnią Twoje repozytorium GitHub

5 najlepszych odznak, które wzmocnią Twoje repozytorium GitHub

Odznaki GitHub mogą zwiększyć czytelność repozytorium, zapewniając użytkownikom szybki sposób przechwytywania metryk repozytorium. Plakietki mogą być osadzone w pliku README.md, aby wyjaśnić innym programistom znaczenie i konieczność Twojego projektu. W rezultacie czytelnicy bardzo szybko dowiadują się o repozytorium, sprawdzając dołączone identyfikatory.

Pierwsze kroki z Redis i PHP do szybkiego przechowywania danych

Pierwsze kroki z Redis i PHP do szybkiego przechowywania danych

Popularny silnik pamięci masowej Redis jest doskonałym i niezbędnym narzędziem w każdym arsenale programistów. Silnik pamięci masowej w pamięci umożliwia niezwykle szybkie przechowywanie i pobieranie danych, do imponujących 32 milionów zapytań na sekundę, co czyni go doskonałym uzupełnieniem każdego głównego silnika bazy danych.

Co to jest WYSIWYG?

Co to jest WYSIWYG?

Część magii tworzenia oprogramowania pojawia się, gdy wiersze kodu łączą się w coś więcej niż sumę ich części. Przekonasz się, że gdy próbujesz budować w ten sposób abstrakcyjnie, potrzebujesz trochę kreatywnej wizualizacji. Może to dotyczyć przetwarzania tekstu lub projektowania stron internetowych, podobnie jak w przypadku programowania.

Jak zainstalować .NET Framework w wersji 3.5 w systemie Windows 10?

Jak zainstalować .NET Framework w wersji 3.5 w systemie Windows 10?

Jako użytkownik systemu Windows prawdopodobnie przynajmniej raz natknąłeś się na słowa .NET Framework. Jest to platforma oprogramowania opracowana przez firmę Microsoft, która umożliwia tworzenie i uruchamianie programów w językach C#, C++, F# i Visual Basic. Najnowsza wersja platformy .NET to 4,8, ale Twój komputer może wymagać starszej wersji platformy .NET (np. .NET 3.5) do uruchamiania niektórych aplikacji.

WordPress kontra Wix: kluczowe różnice

WordPress kontra Wix: kluczowe różnice

Budując stronę internetową dla siebie lub swojej firmy często stajesz przed klasycznym dylematem. WordPress vs. Wix — który wybrać i jaki byłby dla Ciebie najlepszy?

10 najlepszych dystrybucji Linuksa dla programistów

10 najlepszych dystrybucji Linuksa dla programistów

Chociaż Linux może nie być ulubionym systemem operacyjnym dla zwykłych użytkowników, jest to wybór dla większości programistów i programistów. Linux jest bardziej praktycznym systemem operacyjnym, który został specjalnie zaprojektowany z myślą o programowaniu i programistach.

Jak obliczyć wartość nCr

Jak obliczyć wartość nCr

Kombinacja to pojęcie matematyczne. Odnosi się do ułożenia kilku przedmiotów, gdzie ich kolejność nie ma znaczenia. Podstawowa formuła opisuje liczbę prawidłowych kombinacji.

Jak napisać i skompilować swój pierwszy kod Solidity?

Jak napisać i skompilować swój pierwszy kod Solidity?

Solidity to język programowania używany przez inteligentne kontrakty na blockchainie Ethereum. Jest to statyczny, zorientowany obiektowo język programowania.

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

Jak znaleźć N-cyfrowe idealne sześciany i kwadraty za pomocą Pythona, C++ i JavaScript

Jak znaleźć N-cyfrowe idealne sześciany i kwadraty za pomocą Pythona, C++ i JavaScript

Wielu programistów uwielbia rozwiązywać trudne problemy matematyczne za pomocą kodu. Pomaga wyostrzyć umysł i poprawić umiejętności rozwiązywania problemów. W tym artykule dowiesz się, jak znaleźć najmniejsze i największe n-cyfrowe idealne kwadraty i sześciany za pomocą Pythona, C++ i JavaScript. Każdy przykład zawiera również przykładowe dane wyjściowe dla kilku różnych wartości.

Jak używać Pythona jako kalkulatora wiersza poleceń

Jak używać Pythona jako kalkulatora wiersza poleceń

Chociaż możesz używać kalkulatora graficznego na swoim komputerze, interpreter języka programowania Python może pełnić funkcję kalkulatora biurkowego. Jest to tak popularny żart na temat biegania w społeczności Pythona, że ​​wspomniano o nim w oficjalnym samouczku. Oto, jak używać Pythona jako kalkulatora.

Jak osadzić tweety w swoich postach WordPress

Jak osadzić tweety w swoich postach WordPress

Umieszczanie usług stron trzecich w swoich postach WordPress to ekscytujący sposób na przyciągnięcie zainteresowania odwiedzających. Osadzone treści zawierają również wskazówki wizualne, które ułatwiają skanowanie. WordPress ułatwił dodawanie tego typu treści.

Rozpocznij pracę z notatnikiem Jupyter: samouczek

Rozpocznij pracę z notatnikiem Jupyter: samouczek

Jeśli jesteś początkującym naukowcem zajmującym się danymi, który pracuje z Pythonem lub R, musisz wiedzieć, jak korzystać z Jupyter Notebook. Jest to środowisko IDE typu open source i serwerowe do manipulowania danymi, udostępniania kodu na żywo, a także zarządzania przepływem pracy w nauce o danych.

Kodowanie nie jest dla wszystkich: 9 stanowisk technicznych, które można uzyskać bez niego

Kodowanie nie jest dla wszystkich: 9 stanowisk technicznych, które można uzyskać bez niego

Tech to bez wątpienia branża przyszłości. Jeśli jesteś jednym z milionów młodych dorosłych, którzy mają rozpocząć pierwszy etap swojej kariery, być może zastanawiasz się, co zrobić, jeśli nie lubisz kodować.

7 ważnych poleceń, które pomogą rozpocząć pracę z Pythonem dla początkujących

7 ważnych poleceń, które pomogą rozpocząć pracę z Pythonem dla początkujących

Nauka nowego języka programowania, takiego jak Python, staje się bezproblemowa, jeśli masz kompleksową mapę drogową, szczegółowo opisującą koncepcje, których należy się nauczyć jako początkujący i jak robić dalsze postępy, aby osiągnąć kolejny kamień milowy. Nawet średniozaawansowani programiści powinni często odświeżyć swoje podstawy, aby zbudować dla siebie solidną podstawę.

Twoja pierwsza aplikacja internetowa ASP.NET: jak zacząć

Twoja pierwsza aplikacja internetowa ASP.NET: jak zacząć

ASP.NET to bezpłatna wieloplatformowa platforma firmy Microsoft do tworzenia aplikacji i usług internetowych. Platforma ASP.NET jest rozszerzeniem .NET, platformy programistycznej narzędzi, języków programowania i bibliotek używanych do tworzenia różnych aplikacji.