因為要在Google搜尋上爬回結果會需要有一些動作:
因此無法直接以BeautifulSoup來爬取內容,因為在搜尋結果出現之前,是不會有搜尋結果的,因此借助Selenium的互動方法來模擬人的文字輸入和點擊Enter,然後爬回內容後再交給BeautifulSoup來解析搜尋結果。
Google搜尋頁雖然看起來很簡約,但其背後的網頁語法卻十分複雜,想要定位出需要的搜尋框或是搜尋結果有下列三種方式:
土法煉鋼:在瀏覽器點右鍵,檢視原始碼後直接用網頁內容來搜尋資料被什麼元素包住。
先排版:有些網站原始碼較混亂,可以使用網路上的HTML排版工具先排版後再進行資料定位。
使用Chrome的開發工具,在想要定位的元素上點滑鼠右鍵->檢查(Inspect)
說明:
send_key()
函式來輸出搜尋文字,再送出Enter按鍵。LC20lb
這個class,且搜尋結果的超連結都會被div標籤,且該標籤都有yuRUbf
class名稱find_element()
函式來取得裡面的第一個a標籤href屬性值就可以得到超連結。注意:
如果要爬取搜尋結果每個分頁,需注意當爬蟲進入下一個分頁的時候,上的分頁的網址會失效,需要重新取得分頁網址,而非一次幸存下所有分頁網址。
或是可以使用
click()
方法進入下一個分頁,而非重新webdriver.get()
分頁。