Форум программистов, компьютерный форум CyberForum.ru

Python: Web

Войти
Регистрация
Восстановить пароль
 
weblord
1 / 1 / 0
Регистрация: 16.10.2016
Сообщений: 110
#1

Как в lxml найти элемент по атрибуту name? - Python

07.01.2017, 17:17. Просмотров 168. Ответов 6
Метки нет (Все метки)

На этой этой страничке нашел методы парсинга по значению id и class, а вот по name нету Вопрос в заголовке)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2017, 17:17     Как в lxml найти элемент по атрибуту name?
Посмотрите здесь:

Python При парсинге таблицы не видит значения ячеек [requests, lxml]

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Zuzik
228 / 213 / 35
Регистрация: 11.06.2012
Сообщений: 1,402
07.01.2017, 19:00     Как в lxml найти элемент по атрибуту name? #2
используем xpath http://lxml.de/xpathxslt.html#the-xpath-method http://lxml.de/tutorial.html .
alex925
2354 / 2020 / 471
Регистрация: 19.03.2012
Сообщений: 7,884
07.01.2017, 21:15     Как в lxml найти элемент по атрибуту name? #3
А лучше cssselect, это намного более удобно.

Python
1
2
3
4
5
6
7
import requests
import lxml.html as html
 
r = requests.get('http://www.cyberforum.ru/python-web/thread1895590.html').text
parser = html.fromstring(r)
elem = parser.cssselect('meta[name="keywords"]')[0]
print(elem.get('content'))
Garry Galler
518 / 404 / 101
Регистрация: 28.10.2013
Сообщений: 888
08.01.2017, 01:10     Как в lxml найти элемент по атрибуту name? #4
Цитата Сообщение от alex925 Посмотреть сообщение
А лучше cssselect, это намного более удобно.
Поддерживаю, так как сам заметил, что с тех пор как стал писать на python, то вместо xpath всегда пишу selector для парсинга html.
Python
1
2
3
4
5
6
7
8
9
10
css_date_font        = 'font[color="#004499"]' # элемент font c атрибутом color равным #004499
css_link_and_text    = 'dl.nam li' # все элементы li внутри списка определений(dl) класса num
css_count_documents  = "h2[class='hdr2 hdtop'] > small.cnt > strong" # текст помеченный как strong внутри тега small класса cnt внутри заголовка h2 класса 'hdr2 hdtop'
css_find_url         = 'div.spi a'  #все ссылки\anchors внутри div класса spi
css_find_status      = 'div.spi span b'  # тег b внутри тега span внутри div класса spi
css_warnings         = 'div.warnings > div.error'  # dev класса error чей непосредственный родитель div класса warnings
css_edition          = 'select.form option'  # все option внутри селекта класс form
css_print_url        = 'ul#topnav li a' # все anchors внутри элементов li маркированного списка ul c id topnav
css_title            = 'title' # просто тег title
css_profile          = 'div.profile table.table_vi td:nth-child(3)'  # каждая третья ячейка (td) в таблице класса table_vi внутри div класса profile
weblord
1 / 1 / 0
Регистрация: 16.10.2016
Сообщений: 110
08.01.2017, 18:03  [ТС]     Как в lxml найти элемент по атрибуту name? #5
xpath - это понятно, просто думал, что есть метод конкретно для поиска имени (иногда это удобнее)
alex925
2354 / 2020 / 471
Регистрация: 19.03.2012
Сообщений: 7,884
08.01.2017, 18:10     Как в lxml найти элемент по атрибуту name? #6
Цитата Сообщение от weblord Посмотреть сообщение
просто думал, что есть метод конкретно для поиска имени (иногда это удобнее)
Непонятно, что ты имеешь ввиду, я тебе показал метод поиска элемента по его имени, что ещё нужно то?
Jabbson
Модератор
Эксперт по компьютерным сетям
2985 / 2086 / 394
Регистрация: 03.11.2009
Сообщений: 6,600
Записей в блоге: 3
08.01.2017, 20:13     Как в lxml найти элемент по атрибуту name? #7
Если нужно все же xpath:
Код
//input[@name="email"]
Yandex
Объявления
08.01.2017, 20:13     Как в lxml найти элемент по атрибуту name?
Ответ Создать тему
Опции темы

Текущее время: 00:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru