Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

Как работать с Xpath?

11.07.2022, 17:54. Показов 741. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как поправить код, чтобы он не вызывал ошибку?
Code
1
2
3
4
5
PS C:\parsing\s-proghub-docode> & C:/python39/python.exe c:/parsing/pars_test.py
  File "c:\parsing\pars_test.py", line 40
    text = r.html.xpath("//*[@id="content"]/div/section/div[1]/div[1]/p[1]")                                  ^
SyntaxError: invalid syntax
PS C:\parsing\s-proghub-docode>
На https://www.python.org/ захватывал текст:
Whether you're new to programming or an experienced developer, it's easy to learn and use Python.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.07.2022, 17:54
Ответы с готовыми решениями:

Почему xpath в xpather работает как надо, а html.xpath обрезает последний элемент
Тут все ок. http://xpather.com/QdzC7iC7 Добавляю выражение для скрипта, но там обрезается артикул: import requests_html from...

Как работать с xpath используя библиотеку xmlpp?
Мучаюсь весь день с xPath... Не могу понять как с ним работать? Допустим такой код: std::string StatusProfile =...

Как разобраться с XPath запросом?
Ребята хочу спарсить дескрипшин (описание) Вот страничка...

3
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
11.07.2022, 19:05
Код, конечно же я не покажу.
1
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
11.07.2022, 20:27
Python
1
2
3
4
5
6
7
8
import requests
from lxml import html
 
html_text = requests.get('https://www.python.org/').text
tree = html.fromstring(html_text)
gsw_el, = tree.xpath('//div[contains(@class, "get-started-widget")]/p[1]')
 
print(gsw_el.text)
Добавлено через 1 минуту
Но я бы посмотрел в сторону css селекторов, xpath круто, но большую часть задач можно сделать через css selectors.

Добавлено через 2 минуты
Ваш xpath тоже работает, кстати

Python
1
2
In [180]: tree.xpath('//*[@id="content"]/div/section/div[1]/div[1]/p[1]')[0].text
Out[180]: "Whether you're new to programming or an experienced developer, it's easy to learn and use Python."
Добавлено через 5 минут
А проблема у Вас в том, что Вы используете кавычки с безрассудством

text = r.html.xpath("//*[@id="content"]/div/section/div[1]/div[1]/p[1]")

Добавлено через 1 минуту
если починить кавычки, то сработают оба xpath и в requests-html

Python
1
2
3
4
5
In [188]: r.html.xpath('//div[contains(@class, "get-started-widget")]/p[1]')[0].text
Out[188]: "Whether you're new to programming or an experienced developer, it's easy to learn and use Python."
 
In [189]: r.html.xpath('//*[@id="content"]/div/section/div[1]/div[1]/p[1]')[0].text
Out[189]: "Whether you're new to programming or an experienced developer, it's easy to learn and use Python."
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
12.07.2022, 16:58
Цитата Сообщение от supmener Посмотреть сообщение
"//*[@id="content"]/div/section/div[1]/div[1]/p[1]"

Да, теперь увидел. Любой текстовый редактор с подсветкой синтаксиса даст понять, что здесь что-то не так.

Python
1
"//*[@id="content"]/div/section/div[1]/div[1]/p[1]"
Добавлено через 22 секунды
Даже примитивный движок этого форума правильно подсветил код.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.07.2022, 16:58
Помогаю со студенческими работами здесь

Как объединить following-sibling и self в XPATH?
Как избежать двойного поиска "contains" в этой команде? //div/following-sibling::*|//div Пробовал это, но почему-то не работает: ...

Как правильно прописать Xpath
Уважаемые форумчане, помогите правильно прописать xpath для программы Octoparse, Content Grabber и т.п. Суть в том, что на этом сайте...

Как в lxml составить запрос xpath?
import requests import lxml.html import re session = requests.session() openUrl = session.get('http://www.artlebedev.ru/') ...

Как с помощью XPath вытащить информацию
Здравствуйте, только недавно начал изучать селениум и у меня возникла проблема: Как с помощью XPath вытащить информацию о типе участия...

Как в xpath получить html теги?
<div><p>текст</p></div> как отсюда вытащить не "текст" а <p>текст</p>? resp.html.xpath("//div//text()") Добавлено через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru