Jermor pisze: ↑sob lip 01, 2023 10:05 pm
Nie bardzo wiem, jak chcesz wykorzystać wyszukiwarkę Google do uzyskania kodów EAN. Kody te, a właściwie pulę numerów przydziela GS1 Polska (
https://gs1pl.org) a właścicielami są podmioty produkcyjne i to u nich należy uzyskać konkretne kody. Trzeba pamiętać, że kod EAN jest przypisany do konkretnego wyrobu producenta, a nie do symbolu towaru. Chleb Graham może wypiekać wiele piekarni i każda będzie miała dla niego swój kod.
Teraz co do Bena Collinsa. Jego metoda "wyciągania" danych ze struktury kodu HTML jest dobra (a funkcja zaimplementowana w GoogleDocs działa świetnie), ale nie zadziała w LibreOffice. Odpowiednikiem Googlowej funkcji IMPORTXLM() w LibreOffice jest FILTR.XML() [FILTERXML]. Niestety funkcja działa wyłącznie na czystym kodzie XML, no i wymaga (także w przypadku IMPORTXML()) choćby niewielkiej znajomości języka XPATH.
Inną funkcją, którą możesz wykorzystać w LibreOffice jest USŁ.INTER() [WEBSERVICE()]. Przy pomocy tej funkcji możesz pobrać wybraną stronę internetową i znając jej strukturę przy pomocy funkcji REGEX() wyodrębnić z niej potrzebne ci informacje. Jeśli twoje kody należą do produktów różnych producentów, musisz przeanalizować struktur stron internetowych, na których umieścili swoje dane. Bo kody znajdziesz zapewne w ich sklepach.
Funkcja USŁ.INTER() ładuje całą stronę do jednej komórki co uniemożliwia zbadanie jej struktury. Dlatego musisz to zrobić albo przez podejrzenie kodu źródłowego, co można zrobić w każdej przeglądarce, albo w konsoli przeglądarki, co jest czytelniejsze.
"właścicielami są podmioty produkcyjne i to u nich należy uzyskać konkretne kody. Trzeba pamiętać, że kod EAN jest przypisany do konkretnego wyrobu producenta, a nie do symbolu towaru. Chleb Graham może wypiekać wiele piekarni i każda będzie miała dla niego swój kod."
Wszystkie kody które chcę wyszukać pochodzą od Marek należących do Toya S.A , są to ich kody katalogowe.
Pisałem maila do Toya S.A czy nie użyczą mi kodów EAN jednak nie otrzymałem żadnej odpowiedzi.
"Nie bardzo wiem, jak chcesz wykorzystać wyszukiwarkę Google do uzyskania kodów EAN"
Jeśli wpiszę w wyszukiwarkę google "EAN YT-0512" to w tym konkretnym wypadku już w pierwszym linku znalazłem interesujący mnie kod 5906083905124, tak samo jeśli wpiszę "EAN VOREL 06410" to znowu w pierwszym linku znalazłem interesujący mnie kod 5906083064104.
Jest to jednak żmudna praca która aż prosi się o automatyzację.
Postanowiłem więc poszukać odpowiedzi w internecine, jak wykonać taką operację, co doprowadziło mnie do terminu web scraping a ten termin doprowadził mnie do ww. bloga.
Nie znam się jednak na zapytaniach xpath więc postanowiłem zapytać tutaj.
"Inną funkcją, którą możesz wykorzystać w LibreOffice jest USŁ.INTER() [WEBSERVICE()]"
Sprawdziłem czy ta funkcja daję poprawny rezultat i odpowiedź jest prawie.
Jako że domyślałem się że pobranie 11 tyś. stron internetowych za jednym razem skończy się
zawieszeniem systemu postanowiłem, najpierw poprzeciągać kursorem formuły w dół, robiąć coraz większe interwały. Działanie funkcji jest jednak trochę nie przewidywalne raz daję poprawny wynik a raz zwraca błąd #arg dla tych samych wartości.
Udało mi się uzyskać pobrane strony dla około 139 kodów.
Dokładna procedura wygląda tak.
1.Z listy kodów krótkich utwórz URL,
2.wykonaj ten proces po przez łączenie kodów z członem "
https://www.google.com/search?q=ean+" ,
3. Potem zastosuj funkcje usł.inter() [ tutaj są problemy]
4.Zastosuj REGEX(komórka ;"\d{13}")
5.Sprawdzc poprawność kodu EAN za pomocą jego cyfry kontrolnej
Myślałem by zastosować arkusz google sheet gdyż prawdopodobnie mają większą moc obliczeniową, nie mają niestety oni funkcji usł.inter()[web.service()]
Czy da się zamiast niej wykorzystać którąś z ich funkcji importowania ?