С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
1

Xpath and Scraping

05.04.2016, 16:37. Показов 2351. Ответов 50
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот страница
http://econpy.pythonanywhere.com/ex/001.html
хочу получить два списка,закупщик и цена, есть несколько вопросов, как получить все страницы, дополнив код, который я покажу и вопрос насчет xpath, как получился именно такой, как в коде.
Пы Сы Насколько понял знания xpath нужны, поэтому думаю изучить вот это http://www.w3schools.com/xsl/xpath_intro.asp
Python
1
2
3
4
5
6
import requests
from lxml import html
page = requests.get('http://econpy.pythonanywhere.com/ex/001.htm')
tree = html.fromstring(page.content)
buyers = tree.xpath('//div[@title="buyer-name"]/text()')
prices = tree.xpath('//span[@class="item-price"]/text()')
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2016, 16:37
Ответы с готовыми решениями:

Scraping
Подскажите пожалуйста как вытащить информацию с data-phone-number <span title="Перевірений ...

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

Задача 6. Web scraping
Задача 6. Web scraping Что нужно сделать Дан несложный пример HTML-страницы: Sample Web Page. ...

Web scraping и переменные
Добрый ден, я начал изучать программирование и так как приходилось наблюдать за работой людей на...

Web-Scraping Python
https://sbis.ru/contragents?p=contragents Есть сайт компаний, не могу понять как получить ссылку на...

50
alex925
05.04.2016, 16:42
  #2

Не по теме:

Я бы на твоем месте лучше с cssselect знакомился, более часто используемая и полезная штука

0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
05.04.2016, 16:55 3
а я бы посоветовал быть более внимательным при копировании и отличать htm и html - абсолютно разные вещи.
0
2741 / 2340 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.04.2016, 16:55 4
Не работало все у тебя из-за неправильно url
Python
1
2
3
4
5
6
7
8
9
10
11
import requests
from lxml import html
 
page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
parser = html.fromstring(page.text)
 
buyers = parser.cssselect('div[title="buyer-info"] div')
prices = parser.cssselect('span.item-price')
 
print(list(map(lambda i: i.text, buyers)))
print(list(map(lambda i: i.text, prices)))
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
05.04.2016, 17:07  [ТС] 5
Python
1
2
3
4
5
6
7
8
9
import requests
from lxml import html
page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')#Получаем веб страницу, r-объект-отклик
tree = html.fromstring(page.content)
#print(page.content)
#This will create a list of buyers:
buyers = tree.xpath('//div[@title="buyer-name"]/text()')
#This will create a list of prices
prices = tree.xpath('//span[@class="item-price"]/text()')
да, извиняюсь, вот работает, но вопрос остаался прежним, как мне дополнить вот этот код, чтобы забрать со всех страничек.Алекс, ваш код запустил в интерпретаторе и выдало ошибку.
0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
05.04.2016, 17:11 6
подсказка:

Python
1
print(tree.xpath('//a/@href'))
Добавлено через 26 секунд
Цитата Сообщение от izuchaju_python Посмотреть сообщение
Алекс, ваш код запустил в интерпретаторе и выдало ошибку.
cssselect нужно отдельно ставить
0
2741 / 2340 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.04.2016, 17:12 7
izuchaju_python, ты ошибку то выложил бы, а то так это безсмысленное сообщение.
Вообще вангую, что ошибка об отсутствие библиотеки cssselect.

Что касается того как собрать информацию со всех страниц, то тут все тривиально. Просто делаешь несколько запросов с помощью цикла и все
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
05.04.2016, 18:20  [ТС] 8
alex925, Да, из-за отсутствия, извиняюсь, новичок, еще толком не разобрался что к чему...

Добавлено через 2 минуты
скажите, xpath нужны? стоит их учить?
0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
05.04.2016, 18:21 9
учите и их и css селекторы, не ошибетесь
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
05.04.2016, 18:24  [ТС] 10
cssselect, еще б знать, как его ставить на пк...
0
2741 / 2340 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.04.2016, 18:25 11
izuchaju_python, лично я пока не сталкивался, что бы мне нужны были знания xpath. Везде можно использовать cssselectors. Они на мой взгляд проще читаются и больше распространены, по этому их использую.
0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
05.04.2016, 18:25 12
все банально,
Код
pip install cssselect
0
2741 / 2340 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.04.2016, 18:25 13
izuchaju_python, pip install cssselect
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
05.04.2016, 18:28  [ТС] 14
alex925, Jabbson,
Миниатюры
Xpath and Scraping  
0
2741 / 2340 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.04.2016, 18:33 15
izuchaju_python, ну все, модуль установлен.
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
05.04.2016, 18:34  [ТС] 16
ничего не получается, ваш код пытался запустить ===> результат===>
Миниатюры
Xpath and Scraping  
0
2741 / 2340 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.04.2016, 18:39 17
Ты наверно для python 2 поставил либу, запусти команду pip3 install cssselect
0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
05.04.2016, 18:43 18
Цитата Сообщение от alex925 Посмотреть сообщение
Ты наверно для python 2 поставил либу, запусти команду pip3 install cssselect
причина пользоваться virtualenv

использование pycharm тоже помогает, если ставить из под него модули.
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
05.04.2016, 18:47  [ТС] 19
alex925, thank you very much!

Добавлено через 2 минуты
Jabbson, спасибо за совет. Теперь можно постараться дописать программу. Спасибо alex925,
0
2741 / 2340 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.04.2016, 18:55 20
Jabbson, да нет, это не из той серии. Виртуальное окружение полезно, когда нужно иметь несколько версий одного и того же модуля, а тут просто по ошибке поставил библиотеку не для того интерпретатора.
0
05.04.2016, 18:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2016, 18:55
Помогаю со студенческими работами здесь

WEB-Scraping Интернет-магазина
Добрый день, дорогие форумчане! Начинаю изучать Python, поэтому буду благодарен вам за любую...

HtmlUnit financial website web scraping
Нужна помощь с вытаскиванием таблицы из сайта:...

Выбор django или Scraping + Data Mining
Здравствуйте. Усилено изучаю пайтон. Прошел момент практического выбора чем именно заняться, из...

Web scraping - извлечение данных с web-страницы
Добрый день всем! помогите написать скрипт который будет извлекать email, телефоный номер и...

XPATH
имеется файл эксемель, нормальный ручной прописанный самим собой без тип аслеш дабл слеш хететепе и...

xPath
xPath используется только с движком парсинга или каким то ещё образом?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru