国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

selenium在執行phantomjs的API并獲取執行結果的方法

2020-02-16 00:10:20
字體:
來源:轉載
供稿:網友

前言

因為最近要寫一個抓取sitemap和相應的參數的小腳本,現有的爬蟲無論用什么語言寫的,幾乎都無法抓取參數,所以我思考了一下,先做一個簡單的總結。

本來以為寫個這種sitemap的爬蟲很簡單,經過思考之后才發現其中的可怕之處,最關鍵的是參數的提取,這個太麻煩了。。。這個時候才發現AWVS的無敵和強大之處。。。

如果我們要獲取網站的sitemap同時還要抓取對應鏈接的參數,我大概總結了url的幾個來源:

1、頁面上直接現有的form表單以及現有的href等指向的鏈接及參數,這個相對比較簡單,不過要考慮post和get的問題。

2、由js生成的DOM中的form表單和href指向的鏈接

3、由js發起的訪問請求,例如AJAX請求等

4、通過點擊然后調用js發送請求,或是點擊生成一個form或是生產一個DOM,然后再點擊再由js發送請求。例如如下代碼

 <div> <input id="searchTitle" name="searchTitle" value="" type="text"> <div class="button" onclick="javascript:searchWeb();"></div> </div>

5、通過setTimeout函數延遲觸發的js的請求,例如setTimeout("request()", 2000);,這一類我暫時還沒有太好的辦法解決,不過有初步的辦法,后面會說到。

目前我大概想到這么五類,肯定還有沒考慮到的地方,并且目前實際的代碼還沒有寫出來,我先記錄一下我的想法,要是有哪位師傅有興趣請務必聯系我。。。。orz。。

要解決上述的5個問題,因為我的工程的前半部分使用python寫的,所以這里我需要用python來解決,那么最佳選擇必然是selenium和phantomjs,其實比起來我更想用原生的phantomjs來寫。

用phantomjs的話第一個和第二個問題不攻自破,直接正則匹配下來就行了,因為它會幫我們先把頁面的js執行了。

第三個問題也相對比較好解決,我們通過原生phantomjs的APIonResourceRequested就能夠監控所有從頁面發出去的請求。

然后再來看第四個問題,我目前的想法應該沒有辦法徹底解決,我們同樣可以用phantomjs向頁面的所有的dom發送一個click事件,但是這樣子的話時間是一個很大的問題,所以初步想法向所有具有onclick事件的標簽發送點擊事件

然后再來看第五個問題,這應該是最麻煩的一個,我初步的想法還是用onResourceRequested事件,然后設置一個超時時限,讓頁面執行個幾秒鐘,但是最后我還是放棄了這個想法,我決定忽視這個問題,因為如果每個頁面都等上幾秒那時間耗費不堆上天了。

以上就是我目前初步的一些思考,還有很多不成熟之處。

selenium與phantomjs聯動的問題

之前一直知道有selenium這個東西,不夠因為沒有地方需要,也沒有可以去學習,不過對phantomjs可能會稍微熟悉一些。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鲁山县| 黔江区| 桦甸市| 澄城县| 舞钢市| 垣曲县| 阿合奇县| 密云县| 太和县| 广南县| 珲春市| 合水县| 巴塘县| 会理县| 宁津县| 景宁| 内丘县| 嫩江县| 东港市| 宜章县| 宜城市| 古交市| 宜都市| 慈利县| 岳池县| 讷河市| 博客| 清新县| 洪泽县| 古蔺县| 全州县| 霍城县| 若尔盖县| 六安市| 裕民县| 任丘市| 礼泉县| 昌吉市| 建阳市| 沂源县| 武陟县|