Форум сайта python.su
2
Помогите разобраться в том, как делать xpath поиск на веб странице с помощью этой библиотеки, допустим есть у нас страница Your text to link here… хотим мы получить только названия вакансий с этой страницы именно xpath - ом, подобрали мы xpath
//h1[contains(@id, 'h')][contains(@id, '-name')]
import requests page = requests.get('http://www.work.ua/jobs-kyiv/?advs=1&days=125&page=1')
from lxml import etree
from lxml import html
Отредактировано izuchaju_python (Май 5, 2016 22:02:14)
Офлайн
857
izuchaju_pythonДля работы с html-страницей используется lxml.html, потому что html не является подмножеством xml. В html-документе могут быть незакрытые теги, тогда как xml-документ с незакрытыми тегами считается повреждённым.
Какой модуль lxml мы импортируем?!
Офлайн
0
Не знаю, у кого как, но у меня с 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)
['Помощник косметолога', 'Продавец', 'Продавец', 'Мастер маникюра', 'Менеджер по обзвону', 'Менеджер активных продаж', 'Продавец', 'Продавец', 'Продавец', 'Продавец', 'Швея', '', 'Водитель со своим авто', 'Бариста']
Офлайн
568
Kir@А можно пример?
но у меня с lxml, xpath и прочими “супер-пупер работающими модулями” категорическая несостыковка
Офлайн
0
FishHook
Нет - у меня седативные закончились.
Офлайн
2
так кто-нибудь покажет , как делать запрос по xpath?
Офлайн
2
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')]")
Офлайн
857
>>> 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-менеджер'] >>>
Отредактировано py.user.next (Май 7, 2016 09:27:08)
Офлайн
2
py.user.next
в общем неправильный у меня xpath, верно?! где-то не так сделал…спасибо. будем учить.
Офлайн
857
izuchaju_pythonУ тебя там квадратные скобки от квадратных скобок берутся. Так никогда не делают. Квадратные скобки в xpath означают область для условия. Нельзя на них смотреть как на индекс элемента.
в общем неправильный у меня xpath, верно?!
Отредактировано py.user.next (Май 7, 2016 12:26:52)
Офлайн