但是Google似乎在三年前就把web search api給deprecate了
現在用Google custom search只能對特定網站搜尋
小氣巴拉的
所以身為一個硬(ㄌㄢˇ)派(ㄉㄨㄛˋ)的工程師
當然二話不說就是自幹一個出來
首先,當然是了解要怎麼餵參數給google
Google search最主要吃的參數不外乎就是查詢的字串
先來觀察一下:
阿 非常簡單 I got you~
直接在網址後接上/search?q=XXX就是查詢的動作了
這裡要注意的是Google會自動把空白字元轉成"+"號:
不過別怕,就算直接留空白也不會影響到搜尋結果:
萬事俱備,開始爬結果啦!!
這裡會用到兩個Python的Lib--Requests與BeautifulSoup
Requests是方便抓取網頁的Lib,這邊不多作介紹
第一步先分析網頁
這邊有兩個要抓到的重點:
- 搜尋結果
- 換頁方式
這用BeautifulSoup選出來的方法是:
for result in soup.find_all("li", class_="g"): print(result.find("a").get("href"))夠簡單吧!!
再來是換頁機制:
這邊發現有兩個class是"b navend"的td,一個是上一頁一個是下一頁
如果到了最後一頁:
發現td還是存在,但是連結不見了!!
很好很好
一樣用簡單的方式選出來
result = soup.find_all("td", class_="navend") print(result[-1].find("a").get("href"))很好,萬事俱備了,接下來就把兩段湊起來:
while(url != None): data = requests.get(url) soup = BeautifulSoup(data.text) for result in soup.find_all("li", class_="g"): print(result.find("a").get("href") result = soup.find_all("td", class_="navend") url = 'http://www.google.com'+result[-1].find("a").get("href")
可惜人算不如天算
4 則留言:
用phantomjs吧~
我會用了! 但是好慢...
這種用硬幹的就好了啦XD
接下來只好硬幹reCAPTCHA(誤)
user-agent有沒有設定呢
張貼留言