Я очень новичок в JS, XPath и HTML, но я пытаюсь создать веб -скруббер для целей интеллектуального анализа данных.
Так что Чатгпт очень помог в получении того, что мне нужно, но, похоже, борется с JS Ссылки на пути. < /p>
Как бы я использовал CSS_SELECTOR для идентификации этого элемента, называемого LigandMaintable (см. Image) и его данные, указанные в нем? Я в основном хочу сценарий, который прочитал бы данные таблицы, извлекла имя лиганда (первая строка), информация идентификатора цепочки (вторая строка), формулу лиганда (третья строка), затем загрузите файл .svg, который связан в 4 -й строке ( которое было бы лигандом 2D -изображением). < /p>
Я не уверен, как структурировать синтаксис, чтобы правильно извлечь необходимый тип данных, который мне нужен из этих строк. Скриншот веб -сайта + html -структура
Если есть эффективный способ сделать это с помощью стандартного метода, который будет очень признателен. Я сделал с намерением извлечь информацию о лиганде: < /p>
# --- Extract Ligand Information ---
# We use the nth-child approach to match the JS paths you provided
time.sleep(2) # Ensure dynamic content is loaded
ligand_info_list = []
try:
# Grab the second in the #LigandsMainTable
second_tbody = driver.find_element(By.CSS_SELECTOR, "#LigandsMainTable > tbody:nth-child(2)")
# Find all rows in that tbody whose ID starts with "ligand_row_"
ligand_rows = second_tbody.find_elements(By.CSS_SELECTOR, "tr[id^='ligand_row_']")
for row in ligand_rows:
# 1) Ligand ID (e.g. ATP)
try:
lig_name_el = row.find_element(By.CSS_SELECTOR, "td:nth-child(1) > a:nth-child(1)")
lig_name = lig_name_el.text.strip()
except:
lig_name = ""
# 2) PDB chain in
try:
lig_chain_el = row.find_element(By.CSS_SELECTOR, "td:nth-child(2) > div")
lig_chain = lig_chain_el.text.strip()
except:
lig_chain = ""
# 3) Ligand formula
try:
lig_formula_el = row.find_element(By.CSS_SELECTOR, "td:nth-child(3)")
lig_formula = lig_formula_el.text.strip()
except:
lig_formula = ""
# Combine first three columns into a single text
combined_ligand_text = f"{lig_name} (chain: {lig_chain}, formula: {lig_formula})"
if not ligand_info_list:
ligand_info_list = "EMPTY"
except Exception as e:
ligand_info_list = "EMPTY"
Подробнее здесь: https://stackoverflow.com/questions/794 ... nformation
JS PATH или SPATH SYNTAX для динамической веб -страницы: извлечение информации TBOD [закрыто] ⇐ Html
Программисты Html
1740363210
Anonymous
Я очень новичок в JS, XPath и HTML, но я пытаюсь создать веб -скруббер для целей интеллектуального анализа данных.
Так что Чатгпт очень помог в получении того, что мне нужно, но, похоже, борется с JS Ссылки на пути. < /p>
Как бы я использовал CSS_SELECTOR для идентификации этого элемента, называемого LigandMaintable (см. Image) и его данные, указанные в нем? Я в основном хочу сценарий, который прочитал бы данные таблицы, извлекла имя лиганда (первая строка), информация идентификатора цепочки (вторая строка), формулу лиганда (третья строка), затем загрузите файл .svg, который связан в 4 -й строке ( которое было бы лигандом 2D -изображением). < /p>
Я не уверен, как структурировать синтаксис, чтобы правильно извлечь необходимый тип данных, который мне нужен из этих строк. Скриншот веб -сайта + html -структура
Если есть эффективный способ сделать это с помощью стандартного метода, который будет очень признателен. Я сделал с намерением извлечь информацию о лиганде: < /p>
# --- Extract Ligand Information ---
# We use the nth-child approach to match the JS paths you provided
time.sleep(2) # Ensure dynamic content is loaded
ligand_info_list = []
try:
# Grab the second in the #LigandsMainTable
second_tbody = driver.find_element(By.CSS_SELECTOR, "#LigandsMainTable > tbody:nth-child(2)")
# Find all rows in that tbody whose ID starts with "ligand_row_"
ligand_rows = second_tbody.find_elements(By.CSS_SELECTOR, "tr[id^='ligand_row_']")
for row in ligand_rows:
# 1) Ligand ID (e.g. ATP)
try:
lig_name_el = row.find_element(By.CSS_SELECTOR, "td:nth-child(1) > a:nth-child(1)")
lig_name = lig_name_el.text.strip()
except:
lig_name = ""
# 2) PDB chain in
try:
lig_chain_el = row.find_element(By.CSS_SELECTOR, "td:nth-child(2) > div")
lig_chain = lig_chain_el.text.strip()
except:
lig_chain = ""
# 3) Ligand formula
try:
lig_formula_el = row.find_element(By.CSS_SELECTOR, "td:nth-child(3)")
lig_formula = lig_formula_el.text.strip()
except:
lig_formula = ""
# Combine first three columns into a single text
combined_ligand_text = f"{lig_name} (chain: {lig_chain}, formula: {lig_formula})"
if not ligand_info_list:
ligand_info_list = "EMPTY"
except Exception as e:
ligand_info_list = "EMPTY"
Подробнее здесь: [url]https://stackoverflow.com/questions/79457049/js-path-or-xpath-syntax-for-dynamic-webpage-extracting-tbody-information[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия