1. 程式人生 > >Selenium2+python自動化34-獲取百度輸入聯想詞

Selenium2+python自動化34-獲取百度輸入聯想詞

keys else ID 通過 IT utf-8 img 如果 http

前言

最近有小夥伴問百度輸入後,輸入框下方的聯想詞如何定位到,這個其實難度不大,用前面所講的元素定位完全可以定位到的。

本篇以百度輸入框輸入關鍵字匹配後,打印出聯想詞匯。

一、定位輸入框聯想詞

1.首先在百度輸入框輸入關鍵詞,如:博客,然後輸入框下方會自動匹配出關鍵詞。

2.這時候可以用firebug工具定位到聯想出來的詞,可以看到下方匹配出來的詞都有共同的class屬性,這時候就可以全部定位到了。

技術分享圖片

二、打印全部匹配出來的詞

1.通過get_attribute()方法獲取到文本信息

技術分享圖片

三、點擊其中一個

1.點擊其中的一個聯想詞,如:第二個

2.這裏可以先加一個判斷,如果獲取到了就點擊,沒獲取到就不點擊了,以免拋異常。

(如果想依次點擊,用for循環就可以了)

技術分享圖片

三、參考代碼

# coding:utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
time.sleep(1)
driver.find_element_by_id("kw").send_keys(u"博客")
# 獲取百度輸入框的
time.sleep(1)
bd = driver.find_elements_by_class_name("bdsug-overflow")
for i in bd:
print i.get_attribute("data-key")

# 點擊其中的一個,如:第二個
if len(bd) > 1:
bd[1].click()
# 打印當前頁面url
print driver.current_url
else:
print "未獲取到匹配的詞"

Selenium2+python自動化34-獲取百度輸入聯想詞