Jako laik zastanawiam się jakie są różnice pomiędzy #selenium a #beautifulsoup. Oba są do tego samego, ale czy któryś jest np. latwiejszy, bardziej rozbudowany itd? Mam zamiar napisać program który będzie monitorował ceny konkretnych produktów w sellgrosie a następnie wysyłał maila pod wskazany adres jeśli cena będzie mniejsza niż x. Z jakiego modułu byście skorzystali i dlaczego? Pozdrawiam #python
#python #beautifulsoup

Próbuję łapać cenę randomowego produktu na amazonie i program działa..., a czasami nie działa. Wywala błąd:

title = soup.find(id='productTitle').gettext()
AttributeError: 'NoneType' object has no attribute 'get
text'

Co dziwne, ten błąd wywala tylko czasami.... :| Znam znaczenie błędu, ale nie rozumiem dlaczego czasami znajduje productTitle, a czasami nie... :| Ktoś coś?
@boguslaw-de-cubalibre: na przyszłość kod w pastebina wrzucaj, będzie czytelniejszy.

Generalnie, błąd wyskakuje przez to, że find() zwraca wartość NoneType, bo nic nie może znaleźć.
Odpaliłem ten kod no i ogólnie to wygląda tak jakby nie każdy request zdążył załadować wszystkie elementy strony. Odpaliłem ten sam skrypt, tylko przerobiłem go tak by źródło strony pobierał przy pomocy Selenium - tytuł i cenę zwraca za każdym wykonaniem pętli.
Z tego co się orientuje,
#programowanie #python #scraping #beautifulsoup

Siemka, jest sprawa - dobiłem do ściany i potrzebuję żeby ktoś wskazał kierunek :/.

SEDNO: oglądam tutoriale i próbuję nauczyć się przy pomocy pythona i bs4/ scrapy zebrać dane z giełdy kryptowalut i za cholerę nie umiem - poradniki zawsze omawiają na bazie stosunkowo prostych stron i z tym nie mam problemu, ale jak przychodzi do real-life zazwyczaj dostaję [ ]...

MORE: Jakiś czas temu ogarnąłem swój mały
blacktyg3r - #programowanie #python #scraping #beautifulsoup

Siemka, jest sprawa -...

źródło: comment_1582725862QtVZWBB3n26MO0YYg5XFRY.jpg

Pobierz
Hejka,uczę się pisania web crawlerów i mam problem z #beautifulsoup, a dokładnie z tym by zaciągnąć większą ilość danych gdy są one na stronie pobierane w tle (ajax?) tak jak w przypadku wykopu.
Gdy zaciągam źródło strony ładowane jest 50 pierwszych znalezisk dla danego tagu,więcej ładuje się po zescrollowaniu strony.
Co zrobić żeby załadować więcej znalezisk ? Do pobrania zawartości używam freamworka #requests

krótki kod tego co nabazgrałem: https://pastebin.pl/view/1677c573
bądźcie wyrozumiali,
Potrzebuje pobrać dane ze strony gwp (https://www.gpw.pl/kontrakty_terminowe_pelna_wersja ), interesują mnie wartości z wskaźnikami z tabeli class="tab03 tabFloatingHeader"

gdy próbuje się pobrać przez:

r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
table = soup.find('table', class_="tab03")

to dostaje None, a jak wyświetlam całego soup'a to nie ma tam w ogóle danych z tej tabeli tylko jako pierwsza jest widoczna tabela o classie="tab04", która jest legendą.

Macie pomysł jak te dane przechwycić?

#python #beautifulsoup
Robię prosty scrapper, który wyciąga linki ze stron www. Natknąłem się na 2 strony, których budowa jest dosyć nietypowa przez co nie mogę dobrać się do linków. Te strony to:

http://www.wp.pl/ - nie ma w swojej strukturze żadnych linków - widać to w źródle strony.

http://docs.celeryproject.org/ - przekierowuje do http://docs.celeryproject.org/en/latest/ co jest rozsądne ale jak zrobić uniwersalną regułę, która będzie przygotowana na takie sytuacje? Jak pobrać docelowy adres?

Czy są jakieś sprawdzone
http://www.wp.pl/ - nie ma w swojej strukturze żadnych linków - widać to w źródle strony.


@soma115:

* a.) Musisz mieć bajer, co ogarnia JSa: http://phantomjs.org/
* b.) Jest wersja z linkami: http://www.wp.pl/static.html

http://docs.celeryproject.org/ - przekierowuje do http://docs.celeryproject.org/en/latest/ co jest rozsądne ale jak zrobić uniwersalną regułę, która będzie przygotowana na takie sytuacje? Jak pobrać docelowy adres?


Normalnie – musisz podążać za redirectami (w rozsądnej ilości) – kwestia skonfigurowania pobieracza (chyba każdy ogarnia,
Czy możesz mi podać jakieś przykłady 'pobieraczy'?


@soma115: http://docs.guzzlephp.org/en/latest/request-options.html#allow-redirects

Czy BeautifulSoup to potrafi?


Nie wiem, nie używam Pytonga. Zajrzyj do dokumentacji.

Normalizowanie czyli - usuwanie z adresów ?


Od parametrów może zależeć co strona zaprezentuje. Np [http://example.com?page=news](http://example.com?page=news) i [http://example.com?page=gallery](http://example.com?page=gallery) to mogą być zupełnie inne rzeczy. Nie powinieneś ich wywalać.

Normalizowanie czyli - usuwanie z adresów mailto


Ja bym raczej ignorował linki z mailto – przecież mejla nie pobierzesz ;-)

Normalizowanie czyli