| 
 | 
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Добрый день, спецы! Проблема в следующем: Есть таблица на сайте, построенная из DIV. В ней каждая строка, DIV, в котором ячейки тоже из DIV до 4-й вложенности. И это надо парсить (Delphi+WebBrowser). Я получаю ссылку на DIV строки, тут все просто, а далее, надо найти тег "a" с классом "link". Структура примерно такая: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. Пробовал следующее Код: javascript 1. 2. 3. В чем я ошибаюсь? Так найти нельзя? Тогда, как можно, и можно ли вообще? Точнее, можно через рекурсивный обход дочерних элементов, но хочется более "элегантно". Помогите! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.02.2020, 21:47 | 
  
  
  
   | 
||
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LordGray, Код: javascript 1. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.02.2020, 21:54 | 
  
  
  
   | 
||
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  вадя LordGray, Код: javascript 1. Не совсем устраивает, т.к. в документе может быть до 1000 "row". Да еще и в каждом "row" по 2-3 "а". По этому, хочу поиск внутри определенного DIV и всех объектов, которые в нем. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.02.2020, 22:01 | 
  
  
  
   | 
||
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LordGray, Код: javascript 1. Код: javascript 1. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.02.2020, 22:02 | 
  
  
  
   | 
||
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LordGray Не совсем устраивает, т.к. в документе может быть до 1000 "row". ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.02.2020, 22:03 | 
  
  
  
   | 
||
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LordGray, Код: javascript 1. Код: html 1. это если только один row ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.02.2020, 22:06 | 
  
  
  
   | 
||
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Хотел объяснить попроще, но, видимо, запутал. Строковые DIV, кроме класса, не имеют, ничего уникального. По этому, я по классу, получаю всю коллекцию этих DIV, и начинаю их в цыкле парсить. Т.е. у меня ЕСТЬ ссылка на интерфейс конкретного DIV, внутри которого куча всякого. Так вот, применяя Код: html 1. к этому DIV, я получаю пустую коллекцию, т.к. "а" находится не прямо в строковом DIV а на глубине, до 4-й вложенности. Опыты показали, что туда, всякие "getElementsByXXX" не смотрят. А вот почему "querySelector" не находит, для меня загадка, так как на пробном упрощенном HTML файле, он смотрит и в дочерних элементах. Единственное, что приходит в голову, что "querySelector" не находит в оригинальном HTML, так как все дочерние/вложенные DIV имеют разные стили, а "querySelector" вроде связан с CSS. К сожалению, знания по HTML/CSS поверхностные, по этому, может я не правильно понимаю проблему. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.02.2020, 22:24 | 
  
  
  
   | 
||
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LordGray, Код: javascript 1. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.02.2020, 22:36 | 
  
  
  
   | 
||
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Мне не подходят методы объекта "document". Да, он вернет мне ВСЕ ссылки, но я их не смогу сопоставить с остальными данными, которые нужно получить из "ячеек", которые вставлены в "строковый" DIV. Еще раз, мне надо найти объект(ы) по тегу или классу, не где-то там, на документе, а которые являются ДОЧЕРНИМИ (не обязательно напрямую, а может дочка-дочки-...) нужного объекта. Может понятней будет, если приведу ссылку на одну из страниц , которые надо парсить. На приведенной странице, меня интересуют "Product" (название и ссылка, которая имеет класс "link"), и еще десяток колонок с характеристиками. Если я выберу ссылки по классу "link", даже из DIV определенного класса, я не смогу их сопоставить остальным данным. Кроме того, там есть ссылки с таким же классом, которые меня не интересуют (Package name). По этому, парсю "построчно": получил строковый "DIV" и в нем копаюсь ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.02.2020, 23:05 | 
  
  
  
   | 
||
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Вот я балбес, попался, как начинающий. Первый "строковый" DIV, был "шапкой" таблицы, и в нем нет нужной ссылки. Вот мне все методы и возвращали то пустые коллекции, то Null. Не знаю, как всякие getElementsByXXX, а вот "querySelector" выбирает то, что мне надо. Остановился на нем, т.к. он намного гибче в условиях поиска.  Всем спасибо! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.02.2020, 00:36 | 
  
  
  
   | 
||
| 
 
Поиск DOM нужного объекта 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  LordGray Может понятней будет, если приведу ссылку на одну из  страниц , которые надо парсить. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.02.2020, 11:38 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?desktop=1&fid=22&tid=1443558]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    14ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    61ms | 
get topic data:  | 
    8ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    44ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 12ms | 
| total: | 159ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...