Chciałbym pobrać codzienne wschody i zachody słońca ze strony internetowej. Czy możliwe jest zeskrobywanie treści internetowych za pomocą Pythona? jakie są używane moduły? Czy jest dostępny tutorial?
python
screen-scraping
eozzy
źródło
źródło
Odpowiedzi:
Użyj urllib2 w połączeniu z genialną biblioteką BeautifulSoup :
źródło
soup = BeautifulSoup(requests.get('http://example.com').text)
backticks
kodu i przekształciłem go w link. Dzięki!Naprawdę poleciłbym Złom.
Cytat z usuniętej odpowiedzi:
źródło
Zebrałem razem skrypty z mojej pracy polegającej na skrobaniu stron internetowych w tej bibliotece bit-bucket .
Przykładowy skrypt dla twojej sprawy:
Wynik:
źródło
Zdecydowanie polecam sprawdzenie piractwa . Wykorzystuje składnię podobną do jquery (aka css-like), dzięki czemu jest naprawdę łatwa dla osób pochodzących z tego tła.
W twoim przypadku byłoby to mniej więcej tak:
Wynik:
źródło
Możesz użyć urllib2 do wysyłania żądań HTTP, a wtedy będziesz mieć zawartość internetową.
Możesz to zrobić w następujący sposób:
Piękna Zupa to parser HTML w Pythonie, który powinien być dobry do zgarniania ekranu.
W szczególności, oto ich samouczek na temat parsowania dokumentu HTML.
Powodzenia!
źródło
Używam kombinacji Scrapemark (znajdowanie adresów URL - py2) i httlib2 (pobieranie obrazów - py2 + 3). Scrapemark.py ma 500 wierszy kodu, ale używa wyrażeń regularnych, więc może nie być tak szybki, nie testował.
Przykład skrobania witryny:
Stosowanie:
Wynik:
źródło
Ułatw sobie życie, używając
CSS Selectors
Wiem, że spóźniłem się na imprezę, ale mam dla ciebie fajną sugestię.
BeautifulSoup
Sugeruje się już używanie tego narzędzia. Wolałbym używaćCSS Selectors
do zeskrobywania danych wewnątrz HTMLźródło
Jeśli myślimy o uzyskaniu nazw elementów z dowolnej określonej kategorii, możemy to zrobić, określając nazwę klasy tej kategorii za pomocą selektora css:
To są częściowe wyniki wyszukiwania:
źródło
Oto prosty przeszukiwacz sieci, użyłem BeautifulSoup, a my wyszukamy wszystkie linki (kotwice), których nazwa klasy to _3NFO0d. Korzystałem z Flipkar.com, jest to sklep internetowy.
źródło
Python ma dobre opcje na zeskrobywanie sieci. Najlepszym z ramami jest złomowanie . Może to być nieco trudne dla początkujących, więc tutaj jest mała pomoc.
1. Zainstaluj python powyżej 3.5 (niższe będą działały do 2.7).
2. Utwórz środowisko w conda (zrobiłem to).
3. Zainstaluj złom w miejscu i stamtąd.
4.
Scrapy shell
da ci interaktywny interfejs do testowania twojego kodu.5.
Scrapy startproject projectname
stworzy ramy.6.
Scrapy genspider spidername
stworzy pająka. Możesz stworzyć tyle pająków, ile chcesz. Robiąc to, upewnij się, że jesteś w katalogu projektu.Łatwiej jest użyć próśb i pięknej zupy . Przed rozpoczęciem poświęć godzinę na przejrzenie dokumentacji, która rozwiąże większość twoich wątpliwości. BS4 oferuje szeroką gamę parserów, które możesz wybrać. Użyj
user-agent
i,sleep
aby ułatwić skrobanie. BS4 zwraca bs.tag, więc użyjvariable[0]
. Jeśli działa js, nie będziesz w stanie zgarniać bezpośrednio za pomocą żądań i bs4. Możesz pobrać link interfejsu API, a następnie przeanalizować JSON, aby uzyskać potrzebne informacje lub wypróbowaćselenium
.źródło