Перейти к содержимому

Фотография

Набор ссылок страницы по маске


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 TinderVinder

TinderVinder

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Круглов Михаил

Отправлено 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

Как понимаю, список пустой.

-что надо исправить, чтобы стало работоспособным?
-что исправить, чтобы организовать вывод в текстовый файл.
-как после сбора ссылок предварительно проверять на длину списка?

Библиотеки, браузеры-последних версий.

Огромное спасибо, друзья!
  • 0

#2 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 16 июля 2013 - 13:19

букавку забыли
page.find_elements_by_xpath
  • 1

#3 TinderVinder

TinderVinder

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Круглов Михаил

Отправлено 16 июля 2013 - 13:57

Благодарю! Теперь заработало! Заработало!

Разбираю дальше, с удвоенным энтузиазом. Набор при этом получается не такой, как я ожидал, включает только три ссылки, вместо присутствующих на странице десятков, удовлетворящих маске. Как же поправить маску?
  • 0

#4 Keiga

Keiga

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 16 июля 2013 - 14:09

Благодарю! Теперь заработало! Заработало!

Разбираю дальше, с удвоенным энтузиазом. Набор при этом получается не такой, как я ожидал, включает только три ссылки, вместо присутствующих на странице десятков, удовлетворящих маске. Как же поправить маску?

Потому что ссылок которые действительно содержат "http://auto.mail.ru/market/" там три штуки. Если Вам нужны еще не абсолютные ссылки, то исправьте локатор на:
offerlinks=page.find_elements_by_xpath("//a[contains(@href,'/market/')]")
Будет больше элементов
  • 1

#5 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 16 июля 2013 - 14:49

Совет,
1)установите Firebug для firefox
2)установите FirePath для Firebug
3)кликните на вкладку FirePath
Введите ваш локатор "//a[contains(@href,'http://auto.mail.ru/market/')]"
и вы увидете, что ссылок в самом деле 3
  • 1


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных