2015-03-20 4 views
1

Я пытаюсь извлечь URL, для каждого ресторана с this страницы, и я написал питон скрипт для того же:HREF значения не возвращаются

import time 

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

browser = webdriver.Firefox() 
browser.get("http://www.delyver.com/Partners/partner/HSR%20Layout,%20Bengaluru,%20Karnataka,%20India/12.9081357/77.64760799999999") 

time.sleep(1) 

elem = browser.find_element_by_tag_name("body") 

no_of_pagedowns = 40 

while no_of_pagedowns: 
    elem.send_keys(Keys.PAGE_DOWN) 
    time.sleep(0.2) 
    no_of_pagedowns-=1 

post1 = browser.find_elements_by_css_selector("Parwrsp.Parwrsp-Ado") 


for post in post1: 
    print post.get('href') 

Когда я запустить сценарий, открывает окно браузера и я максимизирую его размер окна, чтобы получить фокус, и он автоматически прокручивается вниз. Но ничего не печатается. Я реализовал селен после this.

Что я делаю неправильно?

ответ

0

Ваш текущий селектор CSS не будет соответствовать ни одному элементу, так как Parwrsp - это класс.

Если вы хотите, чтобы соответствовать несколько классов, писать селекторе таким образом:

.Parwrsp.Parwrsp-Ado 

И нет get() метод на WebElement Например, вы имели в виду использовать get_attribute():

posts = browser.find_elements_by_css_selector(".Parwrsp.Parwrsp-Ado") 
for post in posts: 
    print post.get_attribute('href') 

Доказательство вышесказанного:

>>> from selenium import webdriver 
>>> 
>>> browser = webdriver.Firefox() 
>>> browser.get("http://www.delyver.com/Partners/partner/HSR%20Layout,%20Bengaluru,%20Karnataka,%20India/12.9081357/77.64760799999999") 
>>> for post in browser.find_elements_by_css_selector(".Parwrsp.Parwrsp-Ado"): 
...  print post.get_attribute('href') 
... 
http://www.delyver.com/Partners/partnerdetailsview/947/Purnabramha,-HSR 
http://www.delyver.com/Partners/partnerdetailsview/916/Moti-Mahal-Deluxe,-HSR-Layout 
Смежные вопросы