Найти - Пользователи
Полная версия: lxml and xpath
Начало » Python для новичков » lxml and xpath
1 2
izuchaju_python
Помогите разобраться в том, как делать xpath поиск на веб странице с помощью этой библиотеки, допустим есть у нас страница Your text to link here… хотим мы получить только названия вакансий с этой страницы именно xpath - ом, подобрали мы xpath
//h1[contains(@id, 'h')][contains(@id, '-name')]
, плюс используем библиотеку requests
import requests
page = requests.get('http://www.work.ua/jobs-kyiv/?advs=1&days=125&page=1')
а вот дальше что?!
Какой модуль lxml мы импортируем?!
from lxml import etree
или
from lxml import html
или оба?!)
ну с импортом то разобраться можно…
а вот , как это сделать, нужен пример. а то в сети не нашел.
в общем help!
py.user.next
izuchaju_python
Какой модуль lxml мы импортируем?!
Для работы с html-страницей используется lxml.html, потому что html не является подмножеством xml. В html-документе могут быть незакрытые теги, тогда как xml-документ с незакрытыми тегами считается повреждённым.
Kir@
Не знаю, у кого как, но у меня с lxml, xpath и прочими “супер-пупер работающими модулями” категорическая несостыковка.

Прокся сейчас не пускает со скрипт на сайт, поэтому код предварительно скопировал в буфер обмена:
# coding: utf8
import urllib.request
import re
from tkinter import*
# без этого буфер не работает
root = Tk()
#беру код из буфера
full=root.clipboard_get()
#Это работающий запрос к сайту
#response = urllib.request.urlopen("http://numweek.ru/")
#html = str(response.read())
result = re.findall(r'\<h2\>[\<ahref\s=\"\/]*jobs\/[\d\/\"\stitle=]*([А-я\s]*)',full)
print(result)

Результат:
['Помощник косметолога', 'Продавец', 'Продавец', 'Мастер маникюра', 'Менеджер по обзвону', 'Менеджер активных продаж', 'Продавец', 'Продавец', 'Продавец', 'Продавец', 'Швея', '', 'Водитель со своим авто', 'Бариста']
FishHook
Kir@
но у меня с lxml, xpath и прочими “супер-пупер работающими модулями” категорическая несостыковка
А можно пример?
Kir@
FishHook
Нет - у меня седативные закончились.
izuchaju_python
так кто-нибудь покажет , как делать запрос по xpath?
izuchaju_python
import requests
from lxml import html
page = requests.get('http://www.work.ua/jobs-kyiv/?advs=1&days=125&page=1')
tree = html.fromstring(page.content)
buyers = tree.xpath("//h1[contains(@id, 'h')][contains(@id, '-name')]")
что-то не то
py.user.next
>>> import requests
>>> from lxml import html
>>> 
>>> page = requests.get('http://www.work.ua/jobs-kyiv/?advs=1&days=125&page=1')
>>> 
>>> tree = html.fromstring(page.content)
>>> buyers = tree.xpath(".//h2/a[contains(@href, 'jobs')]/text()")
>>> buyers
['Менеджер по работе с клиентами, консультант в торговый зал', 'Менеджер по обслуживанию клиентов (продажа ДСП и мебельных комплектующих)', 'Финансовый менеджер (в консалтинг)', 'Заместитель дирктора', 'Audio software engineer', 'Дизайнер мебели', 'Член бригади ресторану (ст. м. Петровка)', 'Член бригади ресторану (ст. м. Майдан Незалежності)', 'Член бригади ресторану (ст. м. Хрещатик)', 'SEO-специалист', 'Член бригади ресторану (ст. м. Льва Толстого)', 'Член бригади ресторану (ст. м. Дарниця)', 'Ассистент менеджера по закупкам', 'HR-менеджер']
>>>
izuchaju_python
py.user.next
в общем неправильный у меня xpath, верно?! где-то не так сделал…спасибо. будем учить.
py.user.next
izuchaju_python
в общем неправильный у меня xpath, верно?!
У тебя там квадратные скобки от квадратных скобок берутся. Так никогда не делают. Квадратные скобки в xpath означают область для условия. Нельзя на них смотреть как на индекс элемента.
xpath. tutorial
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB