• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Określenie programowo CSS selectora (lub XPath) z kodu HTML na podstawie tekstu zawartego w tagu...

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
292 wizyt
pytanie zadane 11 czerwca w Python przez reaktywny Nałogowiec (44,780 p.)
edycja 11 czerwca przez reaktywny
Cześć!

Jak określić programowo CSS selector (lub XPath) z kodu HTML strony na podstawie tekstu zawartego w tagu wskazywanym przez ten selector?

Najchętniej w Pythonie, może być Rust, od biedy Typescript.

Przykładowo dla tekstu "Ostatnia aktywność"

na tym forum, chcę otrzymać:

.qa-main > h1:nth-child(1) > a:nth-child(1)

Dzięki za pomoc!

2 odpowiedzi

+3 głosów
odpowiedź 13 czerwca przez Wiciorny Ekspert (278,710 p.)
edycja 13 czerwca przez Wiciorny
Masz na myśli takie działanie, jak podczas zdarzeń myszki, wykonywanych na danym elemencie, kiedy to przegladarka określa ścieżkę?
Jest to do zrobienia, ale wymaga dużo pracy i przemyślenia regexów, bo trzeba by napisać funkcje, która parsuje całego html do wystąpienia pożądanego elementu, uwzględniając - elementy html, ich klasy, idy itp. a pomijając pozostałe taki.

Tylko muszę dobrze zrozumieć, tutaj masz w rust funkcje: https://pastebin.com/vBacB88i
Nie gwarantuje, że każdy przypadek będzie stanie dobrze zbudować, trzeba by dalej modyfikować funkcje i poprawiać w oparciu o regexy.
komentarz 13 czerwca przez reaktywny Nałogowiec (44,780 p.)

Masz na myśli takie działanie, jak podczas zdarzeń myszki, wykonywanych na danym elemencie, kiedy to przegladarka określa ścieżkę?

Dokładnie!

Zajrzę do tego kodu w weekend i zrelacjonuje jak to działa.

Dzięki!

komentarz 13 czerwca przez Karol Belka Obywatel (1,140 p.)

@Wiciorny, na pewno autorowi nie chodzi o regexy, wyrażenia regularne.

1
komentarz 13 czerwca przez Wiciorny Ekspert (278,710 p.)
Nie zrozumiałeś, więc przeczytaj to co napisałem. I też pomyśl czym są regexy. :) i do czego służą. Bo głupoty wypowiadasz.
Samo to żeby filtrować selektory musi wykorzystać regexy, żeby działało sprawnie i tak działa "wbudowana" funkcjonalność przeglądarki.
Tworzysz specjalny pattern, który jest wstanie filtrować idy, klasy, tagi, metadane, aby wybierać tylko pożądane elementy.
Akurat w robocie pisałem już takie rozwiązania, ale raczej na znanym silniku i prymitywnych paserach, ale mimo wszystko przeczytaj ze zrozumieniem, co ja napisałem.

Więc akurat autorowi chodzi o to, co robi kod który podałem :)
komentarz 13 czerwca przez reaktywny Nałogowiec (44,780 p.)
Dokładnie tak jak pisze Wiciorny.
0 głosów
odpowiedź 13 czerwca przez Karol Belka Obywatel (1,140 p.)
https://www.php.net/manual/en/simplexmlelement.xpath.php

Odpowiedź brzmi, nie wiem, choć się domyślam. Pozdrawiam
komentarz 13 czerwca przez Panelinio Stary wyjadacz (10,450 p.)

Dobrze!

komentarz 13 czerwca przez reaktywny Nałogowiec (44,780 p.)

@Karol Belka, mnie interesuje odwrotny proces. Podaje tekst i chce otrzymać XPath czy CSS selector który prowadzi do tego tekstu.

komentarz 13 czerwca przez Karol Belka Obywatel (1,140 p.)
Teraz mówisz o utworzeniu własnego języka programowania w cudzysłowiu.

Jeśli w tekście jest słowo i spacja, a następnie dwukropek sporządź odpowiednio znacznik, tag z zagnieżdżeniami i nową linią.
komentarz 13 czerwca przez reaktywny Nałogowiec (44,780 p.)
Nie teraz, tylko od samego początku!

To co pokazałeś, to jest standard, to jest dostępne w HTML Agility Pack w C#, JSOUP w Java, BeautifulSoup w Python i w wielu innych bibliotekach. Także Selenium, Playright i podobne mają tą funkcjonalność.
komentarz 13 czerwca przez Karol Belka Obywatel (1,140 p.)
Musisz nauczyć się pisania do pliku .txt lub .xhtml. Napisz instrukcję warunkową, która sprawdzi użycie dwukropka i inne. Następnie utworzy plik tekstowy i wygeneruje tagi.
komentarz 15 czerwca przez reaktywny Nałogowiec (44,780 p.)
A te pętle, funkcje i zmienne też będą potrzebne?
komentarz 15 czerwca przez Karol Belka Obywatel (1,140 p.)
Tak, na pewno.
komentarz 15 czerwca przez reaktywny Nałogowiec (44,780 p.)
Wpędzasz mnie w kłopoty.

Podobne pytania

+1 głos
1 odpowiedź 226 wizyt
pytanie zadane 20 stycznia 2020 w Python przez Bartekmwt1000 Nowicjusz (150 p.)
0 głosów
0 odpowiedzi 139 wizyt
pytanie zadane 4 lutego 2020 w C i C++ przez Aleksandra2003 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 186 wizyt

93,182 zapytań

142,196 odpowiedzi

322,002 komentarzy

62,513 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2127p. - dia-Chann
  2. 2092p. - Łukasz Piwowar
  3. 2079p. - Łukasz Eckert
  4. 2037p. - Tomasz Bielak
  5. 2006p. - rucin93
  6. 2005p. - Łukasz Siedlecki
  7. 1964p. - CC PL
  8. 1785p. - Michal Drewniak
  9. 1744p. - rafalszastok
  10. 1724p. - Adrian Wieprzkowicz
  11. 1684p. - Mikbac
  12. 1624p. - Anonim 3619784
  13. 1520p. - Marcin Putra
  14. 1480p. - ssynowiec
  15. 1365p. - Dawid128
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...