AJAX點擊和翻頁教程
定義:AJAX即延時加載、異步更新的一種腳本技術(shù),通過在后臺與服務(wù)器進行少量數(shù)據(jù)交換,可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進行更新。
表現(xiàn)特征:
1、點擊網(wǎng)頁中某個選項時,大部分網(wǎng)站的網(wǎng)址不會改變;
2、網(wǎng)頁不是完全加載,只是局部進行了數(shù)據(jù)加載,有所變化。
如何驗證:點擊操作后,在瀏覽器中,網(wǎng)址輸入欄不會出現(xiàn)加載中的狀態(tài)或者轉(zhuǎn)圈狀態(tài)。
適用情況:
1.所有點擊之后加載出現(xiàn)新內(nèi)容而網(wǎng)頁鏈接不變的內(nèi)容。
2.小部分點擊后網(wǎng)頁鏈接改變,但是采集后卡在某一步驟上的情況。
3.網(wǎng)頁加載過慢,可以使用AJAX來超時結(jié)束操作。
示例網(wǎng)站:
http://weibo.com/1893801487/F8yXEAh0i?ref=feedsdk&type=comment#_rnd1497952450258
AJAX點擊示例:
步驟1:新建自定義任務(wù)并打開網(wǎng)頁→點擊刷新元素并選擇點擊該鏈接
步驟2:采集評論內(nèi)容與刷新元素文本→保存并啟動
說明:
示例中可見我們打開的是新浪微博的網(wǎng)頁,進入循環(huán)后先點擊了頁面右側(cè)的刷新,之后采集微博內(nèi)容,本地采集中點擊刷新后采集不到數(shù)據(jù),說明采集步驟在提取數(shù)據(jù)步驟持續(xù)等待,此時應(yīng)當(dāng)在點擊刷新步驟設(shè)置AJAX。
返回在刷新步驟設(shè)置了AJAX,時間設(shè)定為2秒,進入本地采集界面,運行到刷新步驟,因為設(shè)定了AJAX,2秒后自動進入下一步,可以采集到數(shù)據(jù)。
本示例中點擊刷新按鍵后,網(wǎng)頁網(wǎng)址無變化,說明該按鍵使用了AJAX方法。八爪魚采集器默認(rèn)一個步驟點擊后,頁面重新加載,加載完成后再進行下一步驟;而AJAX方法造成點擊后頁面不會重新加載,所以使用AJAX后的時間來設(shè)置點擊后的等待。示例中第一次采集不到數(shù)據(jù)是因為八爪魚在刷新步驟持續(xù)等待,不進入下一步造成,設(shè)置了AJAX后,八爪魚在刷新步驟等待2秒后自動進入下一步驟,得以采集到數(shù)據(jù)。
AJAX翻頁:
說明:示例中第一個打開網(wǎng)頁已經(jīng)設(shè)置了頁面加載完成后向下滾動,示例網(wǎng)頁必須向下滾動2次才會出現(xiàn)翻頁操作,向下滾動可以查看AJAX滾動教程;第二個點擊元素為點擊頁面最下方 查看更多 按鍵,點擊查看更多可以發(fā)現(xiàn)網(wǎng)頁網(wǎng)址不發(fā)生改變,說明應(yīng)用了AJAX方法,啟動任務(wù)后本地采集提取不了數(shù)據(jù),任務(wù)在這一步持續(xù)等待,無法進行到下一步。
返回流程圖修改該步驟,添加AJAX設(shè)置后,第2次運行本地采集,發(fā)現(xiàn)可以順利采集到數(shù)據(jù)。
AJAX點擊和翻頁的其他運用:
利用AJAX實現(xiàn)超時結(jié)束步驟:
此種情況針對非AJAX網(wǎng)頁,為AJAX操作的非正式使用方法。使用方法為:當(dāng)規(guī)則中存在點擊元素操作,而進行該步驟后,因為是非AJAX操作,頁面會出現(xiàn)加載狀況,如果頁面加載時間過長,正常情況下,八爪魚會等待頁面加載完成后再進行下一步驟,此時如果我們發(fā)現(xiàn)頁面內(nèi)需要采集的內(nèi)容已經(jīng)加載完成,而加載狀態(tài)還沒消失,我們可以在點擊步驟設(shè)置AJAX操作,作用是在網(wǎng)頁加載多少秒后停止加載狀態(tài),進行下一步。
如圖所示,該示例中,網(wǎng)頁會在加載狀態(tài)4秒后停止加載進行下一步驟。
AJAX和執(zhí)行前等待可以當(dāng)做一對操作,執(zhí)行前等待為等待多少秒后進入該步驟,而AJAX操作為點擊該步驟后多少秒結(jié)束操作,一個為之前的等待,一個為之后的等待。