Набор ссылок страницы по маске
Автор TinderVinder, 16 июл 2013 13:04
Сообщений в теме: 4
#1
Отправлено 16 июля 2013 - 13:04
Изучаю webdriver selenium python, самое-самео начало учебы. Буду благодарен, если найдете время ответить на простейшие вопросы, может быть и другим новичкам будет полезно.
Учебная задача: со страницы http://auto.mail.ru/market/found/ собрать набор ссылок, включающих в теле "http://auto.mail.ru/market/".
*********************************************************************************************************
from selenium import webdriver
page = webdriver.Firefox()
page.get("http://auto.mail.ru/.../market/found/")
offerlinks=page.find_element_by_xpath("//a[contains(@href,'http://auto.mail.ru/market/')]")
for offer in offerlinks:
print('href=', offer.get_attribute('href'))
*********************************************************************************************************
Ошибка в строке 6: TypeError: 'WebElement' object is not iterable
Как понимаю, список пустой.
-что надо исправить, чтобы стало работоспособным?
-что исправить, чтобы организовать вывод в текстовый файл.
-как после сбора ссылок предварительно проверять на длину списка?
Библиотеки, браузеры-последних версий.
Огромное спасибо, друзья!
Учебная задача: со страницы http://auto.mail.ru/market/found/ собрать набор ссылок, включающих в теле "http://auto.mail.ru/market/".
*********************************************************************************************************
from selenium import webdriver
page = webdriver.Firefox()
page.get("http://auto.mail.ru/.../market/found/")
offerlinks=page.find_element_by_xpath("//a[contains(@href,'http://auto.mail.ru/market/')]")
for offer in offerlinks:
print('href=', offer.get_attribute('href'))
*********************************************************************************************************
Ошибка в строке 6: TypeError: 'WebElement' object is not iterable
Как понимаю, список пустой.
-что надо исправить, чтобы стало работоспособным?
-что исправить, чтобы организовать вывод в текстовый файл.
-как после сбора ссылок предварительно проверять на длину списка?
Библиотеки, браузеры-последних версий.
Огромное спасибо, друзья!
#2
Отправлено 16 июля 2013 - 13:19
букавку забыли
page.find_elements_by_xpath
page.find_elements_by_xpath
#3
Отправлено 16 июля 2013 - 13:57
Благодарю! Теперь заработало! Заработало!
Разбираю дальше, с удвоенным энтузиазом. Набор при этом получается не такой, как я ожидал, включает только три ссылки, вместо присутствующих на странице десятков, удовлетворящих маске. Как же поправить маску?
Разбираю дальше, с удвоенным энтузиазом. Набор при этом получается не такой, как я ожидал, включает только три ссылки, вместо присутствующих на странице десятков, удовлетворящих маске. Как же поправить маску?
#4
Отправлено 16 июля 2013 - 14:09
Потому что ссылок которые действительно содержат "http://auto.mail.ru/market/" там три штуки. Если Вам нужны еще не абсолютные ссылки, то исправьте локатор на:Благодарю! Теперь заработало! Заработало!
Разбираю дальше, с удвоенным энтузиазом. Набор при этом получается не такой, как я ожидал, включает только три ссылки, вместо присутствующих на странице десятков, удовлетворящих маске. Как же поправить маску?
offerlinks=page.find_elements_by_xpath("//a[contains(@href,'/market/')]")Будет больше элементов
#5
Отправлено 16 июля 2013 - 14:49
Совет,
1)установите Firebug для firefox
2)установите FirePath для Firebug
3)кликните на вкладку FirePath
Введите ваш локатор "//a[contains(@href,'http://auto.mail.ru/market/')]"
и вы увидете, что ссылок в самом деле 3
1)установите Firebug для firefox
2)установите FirePath для Firebug
3)кликните на вкладку FirePath
Введите ваш локатор "//a[contains(@href,'http://auto.mail.ru/market/')]"
и вы увидете, что ссылок в самом деле 3
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных