2016-01-23 2 views
0

Итак, мне интересно, как я получаю URL из Google. Как фиолетовая гиперссылка, как мне получить этот URL?Python Selenium hyperlink

google search results

Я знаю, что вы можете очистить URL ниже гиперссылке, но иногда они выглядят так. Как видите, это не полный URL.

google search results

Что я пробовал ..

posts2 = driver.find_elements_by_class_name("_Rm") 
for post2 in posts2: 
    print(post2.text) 


driver.get("https://www.google.com/#q=" + user_input) 
for n in range(20): 
    try: 
     driver.find_element_by_xpath("//*[@id='pnnext']/span[2]").click() 
    except: 
     pass 
    time.sleep(2) 
    posts2 = driver.find_elements_by_tag_name("a") 
    for post2 in posts2: 
     print(post2.get_attribute("href")) 
     text_file.write(post2.get_attribute + "\n") 

Traceback (most recent call last): 
    File "C:/Users/Josh/PycharmProjects/untitled/Testing.py", line 28, in <module> 
    text_file.write(post2.get_attribute + "\n") 
TypeError: unsupported operand type(s) for +: 'method' and 'str' 
https://www.google.com/setprefs?suggon=2&prev=https://www.google.com/&sig=0_ywwzcI8qNScukbiTaRoKlRiERJY%3D 
+0

'link' не должны показывать полный' url'. Он хранит 'url' как аргумент' href' в теге html. – furas

+0

Хорошо, так все равно я могу захватить эту информацию, используя Selenium? – Skid

+0

try 'post2.argument ('href')' – furas

ответ

1

Использование get_attribute("href") вместо text

posts2 = driver.find_elements_by_class_name("_Rm") 

for post2 in posts2: 
    print(post2.get_attribute("href")) 
+0

Я получаю спам с кучей «Нет» – Skid

+0

Возможно, класс '_Rm' не является ссылкой - проверьте его в браузере. – furas

+0

Да, это не так, но я исправил его, Это «R», и я все еще получаю «None». – Skid