Samouczek: Go Spider! Pobieranie z sieci w Pythonie i Scrapy

(Schwinn Zhang) (19 stycznia 2019 r.)

źródło obrazu: https://myfigurecollection.net/item/736413

Prawdopodobnie słyszałem o „skrobaniu sieci”. Jeśli tego nie zrobisz, skrobanie sieci oznacza używanie algorytmu komputerowego do pobierania informacji o celu z witryny internetowej. Biblioteka Scrapy w języku Python została zbudowana właśnie do tego zadania. Piękna zupa to kolejna opcja, ale jest WOLNA. W każdym razie chcesz zdobyć tę umiejętność do tworzenia oprogramowania, do nauki o danych lub do Kremla (mrugnięcie). Istnieje wiele tutoriali na ten temat. „Gdzie zaczynam?” „Czy istnieje plan działania?” Po trzech dniach na przeglądaniu dobrych, złych i nieaktualnych informacji, jestem tutaj, aby przedstawić Ci mapę drogową dotyczącą przeszukiwania sieci.

Od czego zacząć

Mój plan był taki, jak postępować projekty Pythona na tej liście . Jeśli zdecydowałeś się zacząć od Twitter Mining , to POWODZENIA (sarkastycznie), ponieważ nadal czekam na Twitterze, aby przyznać mi dostęp do ich API po 5 dniach 17 godziny i 7 minut. Więc ostrzeżenie o zaległościach! Oczywiście przeszedłem do następnego: Pobierz stronę internetową za pomocą Pythona (i MongoDB) . Dla uproszczenia umieściłem MongoDB w nawiasach. MongoDB będzie kosztować dużo czasu, a dla mojego małego programu nie jest nawet konieczne. Wolałbym raczej sprawić, by działał skrobak sieciowy w języku Python, a później dodać funkcjonalność MongoDB. Zarządzanie czasem oznacza odcięcie się od wyzwań i dotarcie do sedna. Software Dev 101. W każdym razie postępuj zgodnie z tym artykułem Pobierz witrynę internetową za pomocą Pythona (i MongoDB) , a dowiesz się, jak działa skrobanie sieci.

XPath a CSS? Wybieram CSS

Potem utknąłem na czymś, co nazywa się XPath, w zasadzie instrukcją opartą na adresie URL, która wskazuje naszemu pająkowi zwiadowcy informacje o celu. Po dokładnym przejrzeniu samouczka znalazłem tę zgrabną grę kulinarną który pomaga w nauce i ćwiczeniu pisania XPath. Jeśli nadal obawiasz się XPath, istnieje inny sposób, o którym nie wspomniano w tym samouczku…

Z Scrapys tutorial w jego dokumentacji, znalazłem mój przyjaciel CSS, który ma prostszą i bardziej prostą składnię. W rzeczywistości dokumentacja Scrapy jest NAJLEPSZYM tutorialem. Jest to najbardziej aktualne, dokładne i oparte na nim wiele samouczków na blogu. W tym samouczku znalazłem najlepszy sposób na przećwiczenie kierowania na informacje internetowe za pomocą powłoki IPython Scrapy, w zasadzie notatnika Jupyter na Twoim terminalu. W linii poleceń użyj

scrapy shell [adres URL w cudzysłowach]

Następnie postępuj zgodnie z samouczkiem Scrapy na quotes.toscrape.com. To idealny przykład, ponieważ witryna jest prosta i zawiera bardzo mało warstw osadzonego kodu CSS. Po kilku rundach jesteś już młodszym drapieżnym ninja. W tym momencie poczułem się na tyle pewnie, że mogłem zeskrobać wszystkie nagłówki z pierwszej strony New York Timesa . W tym momencie było to niemożliwe, ponieważ strona główna ma imponującą ilość osadzeń. Cóż, pierwsza strona to tylko wyselekcjonowana kombinacja artykułów z każdej sekcji, prawda? Kierując się tą logiką, mogłem przejść do prostszej sekcji Op-Ed i sekcji Art, aby z powodzeniem zeskrobać wszystkie nagłówki. Oto moje repozytorium na git.

A więc oto mój pierwszy pająk. Będę musiał wbudować więcej funkcji i funkcji. Ale na razie działa. Możesz zobaczyć, że wszystkie tytuły na stronie NYT Op-Ed zostały zapisane w pliku JSON tutaj. Oto zrzut ekranu. Możesz znaleźć duplikaty tutaj. W porządku. Możemy później zbudować detektor duplikatów. Planuję też pobrać z wielu źródeł wiadomości i umieścić ich wyniki w tym samym pliku.

NYT Wyniki skrobaka OpEdTitles. Źródło: Schwinn Zhang

Podsumowanie algorytmu pająka

Dalsze kroki

  1. Debuguj i / lub dodaj funkcje do swojego pająka
  2. Spróbuj zeskrobać zbiór danych. Oto dobry samouczek: Używanie Scrapy do tworzenia własnego zbioru danych .

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *