Budujemy scraper, który pobierze listę wszystkich spółek cypryjskich! [Python]

Budujemy scraper, który pobierze listę wszystkich spółek cypryjskich! [Python]

O scrapingu danych trochę już napisaliśmy. Przede wszystkim TUTAJ pokazaliśmy jak można pobierać dane w sposób automatyczny przy wykorzystaniu prostego pluginu Chrome. Wcześniej w TYM artykule jednocześnie opisaliśmy jak budowane są strony internetowe – w szczególności ich część wizualna. Wiedza ta jest bardzo przydatna przy kodowaniu swojego własnego scrapera. A o tym właśnie dzisiaj!

Co pobieramy – rejestr cypryjski

W celu przećwiczenia scrapingu danych zajmiemy się zgromadzeniem pełnej (!) bazy danych spółek cypryjskich dostępnych na stronie internetowej Cyprus Registry. Jak widzimy jest to strona z paginacją, a wszystkie dane spółek zostały zapisane na 9524 stronach. Zatem nasze dane wejściowe i wyjściowe to następujące URL:

https://cyprusregistry.com/companies?page=1
https://cyprusregistry.com/companies?page=9524

To bardzo ważne – musimy przewidzieć w kodzie iterację, która zbuduje nam pełną listę URL, z których ostatecznie będziemy pobierać dane spółek! 🙂

Python – jakie biblioteki wykorzystamy?

Tu odpowiedź jest bardzo prosta, bo cały proces też jest bardzo prosty. Wykorzystamy request do odpytywania strony internetowej, BeautifulSoup do parsowania danych html oraz pandas do zarządzania danymi w DataFrame. Brzmi strasznie? Nic bardziej mylnego. Oto początek naszego kodu:

import requests
from bs4 import BeautifulSoup
import pandas as pd

Następnie definiujemy kilka stałych wartości, do których będziemy się odwoływać w pętlach i różnych momentach naszego programu:

#bazowe url do analizy
base_url = "https://cyprusregistry.com/companies?page="

#strony do analizy
r1, r2 = 1, 9524

#puste listy do scrapingu danych
cyprusRegistry = []
companies = []
adresses = []
company_urls = []

I tworzymy listę zawierającą wszystkie adresy URL z właściwymi paginacjami (stronami) do analizy:

#lista z paginacją
def createList(r1, r2):
    return list(range(r1, r2 + 1))

paginationList = createList(r1, r2)

for i in paginationList:
    scraping_url = base_url + str(i)
    cyprusRegistry.append(scraping_url)

Zaczynamy scraping w naszym skrypcie Python – pętla

Po zdefiniowaniu i przygotowaniu powyższych danych została sama przyjemność – napisanie pętli, która odpali każdą stronę i pobierze z niej listę wyświetlanych spółek, adres rejestracji podmiotu oraz URL do szczegółowych danych o podmiocie. Pętla wygląda następująco:

#scraping
for url in cyprusRegistry:
    page = requests.get(url)
    soup = BeautifulSoup(page.content, "html.parser")
    for company in soup.find_all("h5", class_="mb-1"):
        nice_name = company.text
        companies.append(nice_name)
    for adress in soup.find_all("p", class_="mb-1"):
        nice_adress = adress.text
        adresses.append(nice_adress)
    for anchor in soup.findAll('a', class_="text-dark", href=True):
        company_urls.append(anchor['href'])
    print("Przeanalizowano " + str(r1)+ " stron")
    r1 +=1

Operacje na danych w Python – DataFrame

Koniec naszej operacji to zapisanie danych do struktury DataFrame i export do pliku Excel, który tworzy piękną bazę danych z cypryjskiego rejestru.

#konwersja do dataframe
cyprus_dataframe = pd.DataFrame(list(zip(companies, adresses, company_urls)),
              columns=['Nazwa','Adres', 'URL'])

#export do pliku XLSX
cyprus_dataframe.to_excel("Cyprus_Business_Register-1-9524.xlsx")

W efekcie działania skryptu powstaje plik XLSX, który zawiera wszystkie zarejestrowane na Cyprze spółki dostępne w rejestrze Cyprus Registry, ich adres oraz URL do szczegółowych informacji o podmiocie. Co zrobimy w kolejnym kroku? Pobierzemy wszystkie informacje o osobach związanych z tymi podmiotami! Ale to już w kolejnym artykule o scrapingu danych przy użyciu Pythona. Aby uruchomić skrypt wystarczy doinstalować niezbędne biblioteki poleceniem pip install i uruchomić w terminalu aplikację:

python3 osintquest_cydb.py

Pliki do pobrania

Dodatkowo udostępniamy Wam pobrany przez nasz skrypt rejestr spółek z Cypru oraz kod źródłowy całej aplikacji do analizy. Do boju osintowcy! 🙂

Zestawy rakietowe “Piorun” i amunicja – to Ukraina otrzyma od Polski

Zestawy rakietowe “Piorun” i amunicja – to Ukraina otrzyma od Polski

Sytuacja wokół Ukrainy wciąż jest napięta. Codziennie pojawiają się nowe informacje na temat ruch wojsk rosyjskich przy ukraińskiej granicy. W odpowiedzi NATO ostrzega Władimira Putina, że atak spotka się z reakcją. Mariusz Błaszczak, szef MON, poinformował w nocy z wtorku na środę, jakiej pomocy Polska udzieli Ukrainie. Kijów może liczyć na dostawę amunicji oraz przenośnych przeciwlotniczych zestawów rakietowych “Piorun” – podał minister obrony narodowej w mediach społecznościowych.

Twitter
Zestawy rakietowe “Piorun” i amunicja – to Ukraina otrzyma od Polski

Polska przekaże broń Ukrainie; Rosja sprowadza zapasy krwi na granicę z Ukrainą

Szef BBN Paweł Soloch poinformował, że Polska przekaże Ukrainie broń o charakterze defensywnym. Taka decyzja miała zapaść w porozumieniu z Andrzejem Dudą. Paweł Soloch podkreślił podczas briefingu prasowego, że podczas posiedzenia Rady Bezpieczeństwa Narodowego popłynął mocny, ponadpartyjny przekaz wobec sytuacji na Ukrainie.

PROPAGANDA WYKORZYSTUJE INFORMAJCE BBN:

Rosja rozpoczęła dostawy krwi i środków medycznych na granicę z Ukrainą – pisze Reuters, powołując się na trzech amerykańskich urzędników.

Zestawy rakietowe “Piorun” i amunicja – to Ukraina otrzyma od Polski

W Polsce odbyło się posiedzenie Rady Bezpieczeństwa Narodowego

28 stycznia 2021 r. odbyło się niejawne posiedzenie Rady Bezpieczeństwa Narodowego. Podczas spotkania, w którym wzięli udział m.in. przewodniczący klubów i kół parlamentarnych, omówiono bieżącą sytuację związaną z groźbą inwazji rosyjskiej na Ukrainę. – W tej chwili nie ma bezpośredniego, militarnego zagrożenia dla Polski – powiedział na wstępie Andrzej Duda. Prezydent Andrzej Duda po zakończeniu obrad podziękował za spotkanie i “za niezwykle konstruktywną atmosferę”. Dodał, że wszyscy obecni na posiedzeniu przedstawili swoje stanowisko. – Ja, pan premier i ministrowie w szczegółach przekazaliśmy informacje przedstawicielom klubów parlamentarnych i kół o tym, jaka jest obecnie sytuacja znana nam w przestrzeni międzynarodowej, i wokół Ukrainy i na Ukrainie i na Białorusi. Jak to wygląda z punktu widzenia bezpieczeństwa Polski, jakie działania są podejmowane, jak przebiegają rozmowy międzynarodowe – mówił Duda. Podziękował “za niezwykle odpowiedzialną, patriotyczną postawę jeżeli chodzi o polityków, którzy reprezentują nasze społeczeństwo”.

https://twitter.com/nowePSL/status/1487171503611424769?s=20&t=7cU1ho4AQHkLhkDUfy3BVA

Zestawy rakietowe “Piorun” i amunicja – to Ukraina otrzyma od Polski

Spotkanie czwórki normandzkiej w Paryżu; Stoltenberg wzywa Rosję do wycofania wojsk;

Przedstawiciele Ukrainy, Rosji, Francji i Niemiec we środę, 26 stycznia, rozmawiali w Paryżu przez osiem godzin i zgodzili się co do potrzeby wprowadzenia trwałego i bezwarunkowego zawieszenia broni w Donbasie. Choć Rosjanie uznali, że szczyt w Paryżu nie przyniósł wielkich postępów, zasugerowali, że możliwe będzie spotkanie przywódców negocjujących państw. Ukraina jest zadowolona z powrotu rozmów w formacie normandzkim i wyraziła nadzieję, że w przyszłości uda się dojść do porozumienia i doprowadzić do deeskalacji sytuacji na wschodzie kraju. Kolejne spotkanie normandziej czwórki – za dwa tygodnie w Berlinie.

KOMENTARZ: Normandzka czwórka (Format normandzki, ang. Normandy contact group) – grupa składająca się z przedstawicieli Ukrainy, Francji, Niemiec i Rosji powołana w celu rozstrzygnięcia wojny w Donbasie i kwestii przynależności państwowej Krymu.

TWITTER

Sekretarz generalny NATO Jens Stoltenberg poinformował, że NATO wysłało do Moskwy pisemną odpowiedź na jej żądania. – Po raz kolejny wzywamy Rosję do natychmiastowej deeskalacji sytuacji – zaapelował Stoltenberg. Dodał, że napięcie wokół Ukrainy wciąż rośnie.
– Jesteśmy gotowi wysłuchać obaw Rosji i zaangażować się z nią w rzeczywisty dialog (…) na temat zasad bezpieczeństwa europejskiego. (…) Rosja powinna jednak zaniechać demonstrowania siły, agresywnej retoryki i wrogich działań skierowanych przeciwko sojusznikom i innym państwom. Rosja powinna wycofać swoje wojska z Ukrainy, Gruzji i Mołdawii, gdzie są one rozlokowane bez zgody tych państw – oświadczył sekretarz generalny NATO.

Zestawy rakietowe “Piorun” i amunicja – to Ukraina otrzyma od Polski

Były szef MI6 – Putin się nie wycofa; Rada Bezpieczeństwa Narodowego w Polsce – będzie dyskusja o Ukrainie; Kolejne naruszenia rozejmu w Donbasie

Były szef MI6 przyznał, że „nie widzi scenariusza”, w którym Władimir Putin ustąpi wobec swoich zamiarów związanych z Ukrainą. Sir Alex Younger, który pełnił funkcję szefa brytyjskiego MI6 w latach 2014-2020, powiedział programowi BBC Today, że rosyjski prezydent „gra w pokera, a nie w szachy”, aby stworzyć dla siebie opcje. Zaznaczył, że aktualne warunki geopolityczne, które Putin stworzył sprawiają, że nie widać scenariusza wycofania, który jednoczenie satysfakcjonowałby prezydenta FR.

Komentarz: widoczna aktualnie sytuacja geopolityczna to klasyczny przykład spirali zbrojeń – zjawiska, którego genezą jest dozbrajanie się jednego aktora międzynarodowego skutkujące niepewnością i wzrostem napięć u innych. W efekcie pozostali także zaczynają się dozbrajać – prowokując do dalszej mobilizacji inicjatora.

BBC Today, TWITTER

https://twitter.com/PrawaStronaa/status/1486006604805951488?s=20

Wideokonferencja prezydenta USA Joe Bidena z udziałem prezydenta Andrzeja Dudy i przywódców europejskich krajów (Niemiec, Francji, Włoch i Wielkiej Brytanii) oraz przedstawicielami Unii Europejskiej i NATO zakończyła się po 80 minutach rozmów. Taką informację podał w poniedziałek wieczorem Biały Dom. Prezydent Andrzej Duda zapowiedział, że po międzynarodowych konsultacjach ws. sytuacji Ukrainy zwoła Radę Bezpieczeństwa Narodowego.

Komentarz: Zgodnie z Art. 135 Konstytucji Rzeczypospolitej Polskiej z dnia 2 kwietnia 1997 r. Rada Bezpieczeństwa Narodowego jest organem doradczym Prezydenta Rzeczypospolitej w zakresie wewnętrznego i zewnętrznego bezpieczeństwa Państwa.

PAP, TWITTER
https://twitter.com/nowePSL/status/1485185763612504069?s=20

Rosyjscy najemnicy w Donbasie od początku dnia pięciokrotnie naruszyli zawieszenie broni, w wyniku czego dwóch ukraińskich żołnierzy zostało rannych – podało centrum prasowe sztabu Operacji Połączonych Sił Zbrojnych.

interfax.com.ua

USA, Australia, Wielka Brytania i Estonia wycofują pracowników ambasady w Kijowie; Inwazja na Ukrainę 20 lutego?; Zełenski zwołuje posiedzenie Rady Bezpieczeństwa Narodowego i Obrony

USA, Australia, Wielka Brytania i Estonia wycofują pracowników ambasady w Kijowie; Inwazja na Ukrainę 20 lutego?; Zełenski zwołuje posiedzenie Rady Bezpieczeństwa Narodowego i Obrony

W niedzielę Departament Stanu polecił rodzinom całego personelu amerykańskiego ambasady USA na Ukrainie opuszczenie kraju w obliczu zwiększonych obaw przed rosyjską inwazją.

Prezydent USA Joe Biden rozważa wysłanie do krajów wschodniej flanki NATO dodatkowych 1-5 tys. żołnierzy w reakcji na koncentrację rosyjskich sił na Białorusi.

Na poczynaniach Amerykanów cieniem kładą się problemy wizerunkowe Joe Bidena. Prezydent USA ma najgorsze notowania od początku swojej kadencji. Ocenia go źle ponad 53 proc. Amerykanów, dobrze tylko 42 proc.

MSZ Ukrainy ocenia te decyzje jako przedwczesne.

WNP.PL, TWITTER

Głównodowodzący ukraińskich Operacji Zjednoczonych Sił Ołeksandr Pawluk w rozmowie z brytyjskim The Sunday Times potwierdził, że największe ryzyko rozpoczęcia rosyjskiej operacji wojskowej przeciw Ukrainie nastąpi po 20 lutego. Z uwagi na kończące się w tym czasie igrzyska olimpijskie w Pekinie. Zdaniem Pawluka możliwy jest atak z kilku kierunków w celu zajęcia wschodniej Ukrainy. Najbardziej realistyczne jest rozpoczęcie działań zaczepnych w Donbasie.

BELSAT.EU, TWITTER
https://twitter.com/elizifferblatt/status/1485632099382136841?s=20

Prezydent Ukrainy Wołodymyr Zełenski zwołuje w poniedziałek 24 stycznia posiedzenie Rady Bezpieczeństwa Narodowego i Obrony Ukrainy. Spotkanie poświęcone będzie środkom zapewniającym bezpieczeństwo narodowe przed zagrożeniami wewnętrznymi i zewnętrznymi, aktualnym stanem gospodarki, energetyce, zwalczaniu pandemii koronawirusa i nie tylko.

TWITTER

90 ton broni z USA trafiło na Ukrainę; Prorosyjski przywódca w Kijowie?; Złamane warunki rozejmu w Donbasie

90 ton broni z USA trafiło na Ukrainę; Prorosyjski przywódca w Kijowie?; Złamane warunki rozejmu w Donbasie

Samolot transportujący 90 ton amerykańskiej broni wylądował na lotnisku w Kijowie. O sytuacji poinformowała na swoim Twitterze Ambasada Stanów Zjednoczonych w Kijowie. Sprzęt, który został dostarczony do stolicy Ukrainy wart jest około 200 mln dolarów.

TWITTER

Brytyjskie ministerstwo spraw zagranicznych oświadczyło, że ma informacje wskazujące, że Rosja chce zainstalować w Kijowie przychylnego Kremlowi przywódcę. Dowodzić to ma możliwości inwazji i okupacji Ukrainy. Moskwa stanowczo zaprzecza doniesieniom Londynu. Określiło je “dezinformacją”, którą NATO eskaluje napięcie.

MONEY.PL, TWITTER

23 stycznia rosyjscy najemnicy 7 razy naruszyli warunki reżimu zawieszenia broni w Donbasie. Strzelali 4 razy z moździerzy 120 i 82 mm, a także granatników.

Parlamentarzyści FR chcą niepodległości Donbasu; Sprzęt, sprzęt, sprzęt…; Możliwa ewakuacja przedstawicielstwa dyplomatycznego USA z Ukrainy; Utrzymanie rozejmu w Donbasie

Parlamentarzyści FR chcą niepodległości Donbasu; Sprzęt, sprzęt, sprzęt…; Możliwa ewakuacja przedstawicielstwa dyplomatycznego USA z Ukrainy; Utrzymanie rozejmu w Donbasie

Grupa 11 rosyjskich deputowanych wezwała Dumę Państwową, aby ta zaapelowała do prezydenta Rosji o uznanie niepodległości dwóch prorosyjskich separatystycznych regionów we wschodniej Ukrainie. Jednym z pomysłodawców uznania Donbasu za niepodległy jest Aleksandr Borodaj – były premier samozwańczej Donieckiej Republiki Ludowej (obecnie kieruje organizacją weteranów wojennych).

PAP, REUTERS, TWITTER

Skład należący do Rosyjskich Dróg Żelaznych (koleje państwowe).

TWITTER

Stany Zjednoczone badają możliwość ewakuacji rodzin dyplomatów z Ukrainy. „Zgodnie z planem personel niebędący podstawowym personelem będzie mógł dobrowolnie opuścić kraj, podczas gdy członkowie rodziny otrzymają rozkaz powrotu do domu”. Decyzja w tym zakresie ma zostać ogłoszona w najbliższych dniach. Prorosyjskie konta w mediach społecznościowych wciąż przedstawiają sytuację zgodnie z interesem Kremla.

https://interfax.com.ua, TWITTER – przykład wpisu o charakterze hybrydowym:
https://twitter.com/amicableru/status/1484561116420313088?s=20

21.01.2022 nie naruszono porozumień pokojowych w Donbasie.

https://interfax.com.ua

Biden zapowiada zerwanie stosunków z FR; Macron chce nowej umowy bezpieczeństwa z Rosją; Strzały do ukraińskich pozycji w Donbasie

Biden zapowiada zerwanie stosunków z FR; Macron chce nowej umowy bezpieczeństwa z Rosją; Strzały do ukraińskich pozycji w Donbasie

Prezydent J. Biden podczas konferencji podkreśla twarde stanowisko USA wobec działań FR. Echem w mediach społecznościowych i międzynarodowej prasie odbiła się istotna wpadka Bidena, w której zasugerował, że USA dopuszczą “drobną inwazję” na Ukrainę.

TWITTER, MIĘDZYNARODOWA PRASA

Europa potrzebuje paktu zbiorowego bezpieczeństwa w obliczu zagrożenia płynącego z Rosji – zaapelował francuski prezydent w Parlamencie Europejskim. Wypowiedzi polityka o próbie wypracowania dialogu z Rosją komentowane są w mediach społecznościowych jako możliwość zwrotu w stronę Rosji.

Bezpieczeństwo naszego kontynentu wymaga abyśmy uzbroili naszą Europę. Musi być ona siłą pokoju i równowagi, w szczególności w dialogu z Rosja. Bronię tego dialogu od wielu lat. To nie jest opcja. (…) Potrzebujemy go. Musimy postawić nasze jasne wymagania i musimy sprawić, że zostaną one uszanowane. To musi być szczery dialog biorący pod uwagę destabilizację, spekulację i manipulację (ze strony Rosji)

TWITTER, WNP.PL

Od początku dnia rosyjscy najemnicy trzykrotnie strzelali do ukraińskich pozycji w Donbasie. Według raportu, podczas ostrzału jednostki uzbrojone Federacji Rosyjskiej otworzyły ogień z moździerzy 82 i 120 mm oraz granatników przeciwpancernych. Ponadto w obwodzie ługańskim odnotowano wrogi bezzałogowy statek powietrzny, prawdopodobnie Orlan-10

https://interfax.com.ua/news/general/792916.html