通過各種了解,這種非同步重新整理的網頁似乎只能用瀏覽器加上模擬操作來實現重新整理。因為js需要乙個瀏覽器核心來解析。所以python + phantomjs + selenium看樣子是不錯的做法。這裡phantomjs號稱無頭(headless)瀏覽器。顧名思義,就是不需要header啦。於是很快找到樣例,對**修改之。
from bs4 import beautifulsoupfrom selenium import webdriver
import time
class
imgcrawler:
def
__init__(self,searchlink
= none):
self.link =
searchlink
self.soupheader = ):
link = json.loads(a.text)[jsonflaglink]
filetype = json.loads(a.text)[jsonflagtype]
detailurl = link +
u'.'+ filetype
return actualurl
if __name__ ==
'__main__'
:search_url =
""#從google搜尋時提取出來的鏈結,不同google站點不同
queryword =
#去掉空格
query = queryword.split()
query =
'+'.join(query)
# weblink = search_url + query
weblink =
""+ query +
"&as_epq=&as_oq=&as_eq=&imgsz=&imgar=&imgc=&imgcolor=&imgtype=&cr=&as_sitesearch=&safe=images&as_filetype=&as_rights="
#生成物件
img = imgcrawler(weblink)
#模擬瀏覽器獲取鏈結
img.getphantomjsdriver()
#模擬下拉重新整理操作
img.scrolldownusephatomjs(2,5)
#獲取html框架
soup = img.getsoup('html.parser')
print weblink
print soup
#獲取網頁鏈結
actualurllist = img.getactualurl(soup,'div','rg_meta','ou','ity')
len(actualurllist)
執行一下,len為0。不好用啊。
回頭想想,基本上談到用phantomjs的文章,要麼年代久遠,3年以上,要麼就是搜其他的**的,很少提及谷歌的。會不會這裡有問題。
列印beautifulsoup獲取的網頁,發現和直接用頭申請來的完全不一樣啊,只有谷歌自己生成的縮圖,而且網頁html**,除了框架和修飾的部分,核心內容都不太一樣(雖然搜到的結果是一樣的)。估計谷歌針對各種瀏覽器進行了區別對待——也可以說是自適應匹配吧,畢竟把瀏覽器視窗最大化標準化網頁布局都有變化。phantomjs估計沒有更新,就給了個最古老的頁面,由於長期不更新,已經更不上時代了。
這個貪圖便宜簡單做的修改應該不行,需要進一步研究。
weex上手筆記(一)
1.weex 基於web 開發技術,使用同一套 來構建 android ios 和 web 應用。具體來講,在整合了 weexsdk 之後,你可以使用 j ascript 和現代流行的前端框架來開發移動應用。2.weex 不依賴任何特定的前端框架,目前主要支援 vue.js 和 rax 這兩個前端框...
Raspberry Pi上手筆記之一
raspberry pi在國內稱為 樹莓派 在開始使用樹莓派之前,我們需要熟悉它 的聯結器和功能。這有助於我們選擇使用樹莓派來實現什麼專案,也能幫助我們梳理樹莓派還需要什麼硬體。比如,你或許需要乙個電源 鍵盤 滑鼠 顯示器等。樹莓派分a型和b型,a型為低配,價值25美元 b型為高配,價值35美元。在...
教程 ObjectPascal快速上手筆記01
objectpascal快速入門筆記01 注釋 圓括號 星號注釋 塊注釋 雙斜槓注釋 行注釋 不同形式注釋可巢狀使用。物件命名 對大小寫不敏感 不能帶有空格 第乙個字母盡量不要帶t 類 f 類中私有成員 i 介面 識別符號 ascii碼字符集 任意長不帶空格的字串 第一字元必須是字母或下劃線 變數宣...