2016-01-23 138 views
0

所以,我想知道如何從谷歌URL抓取。像紫色超鏈接一樣,我將如何獲得該URL?Python硒超鏈接

google search results

我知道你可以刮的超級鏈接下面的網址,但有時他們看起來是這樣。正如你可以看到它不是一個完整的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

嘗試'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

我得到了一堆「None」垃圾郵件 – Skid

+0

也許類'_Rm'不是鏈接 - 在瀏覽器中檢查它 – furas

+0

是的,它不是,但我修好了,它是「R」,我仍然得到「無」 – Skid