selenium2java爬蟲示例

本人在使用圖靈機器人的過程當中,須要豐富一下機器人知識庫裏面的笑話、段子等內容,就得去網上爬一些內容下來,通過嘗試終於成功了,效果通常般,主要緣由是添加的知識條目審覈不經過,還有就是爬蟲次數限制,暫時放棄了,之後打算用接口作爬蟲,selenium爬起來很容易出錯,瀏覽器加載太慢了,一旦次數太多很耗時。分享一下代碼,供你們參考。html

package wepractice;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import selenium.Library;
import selenium.Excel;
 
public class NeiHanjokes extends Library{
	public static void main(String[] args) {
		Library library = new Library();
		List<String[]> sheet = new ArrayList<String[]>();//新建list,用於存放每一個測試用例的測試結果
		Map<Integer, List<String[]>> dateJoke = new HashMap<Integer, List<String[]>>();
 
		driver.get("http://neihanshequ.com/");
		String home = driver.getWindowHandle();
		library.findElementByXpathAndClick(".//*[@id='detail-list']/li[1]/div/div[2]/a/div/h1/p");
		Set<String> handles = driver.getWindowHandles();
		for(String handle : handles){
			if (!handle.equals(home)) {
				driver.switchTo().window(handle);
			}
		}
		for (int i = 0; i < 15; i++) {
			library.output(i);
			String joke = library.getTextByXpath("html/body/div[3]/div[1]/div/ul/li[1]/div/div[2]/a/div/h1/p");
	    	String[]  jokes = new String[1];
	    	jokes[0] = joke;
	    	sheet.add(jokes);
	    	library.findElementByIdAndClick("prevGroupLink");
		}
    	
    	dateJoke.put(1, sheet);
    	Excel excel = new Excel();
    	excel.writeXlsx(dateJoke);
    	driver.close();//關閉窗口
    	for(String handle : handles){//切換窗口
			if (handle.equals(home)) {
				driver.switchTo().window(handle);
			}
		}
    	driver.quit();//退出瀏覽器
	}
}

技術類文章精選

  1. java一行代碼打印心形
  2. Linux性能監控軟件netdata中文漢化版
  3. 接口測試代碼覆蓋率(jacoco)方案分享
  4. 性能測試框架
  5. 如何在Linux命令行界面愉快進行性能測試
  6. 圖解HTTP腦圖
  7. 如何測試機率型業務接口
  8. httpclient處理多用戶同時在線
  9. 將swagger文檔自動變成測試代碼
  10. 五行代碼構建靜態博客
  11. httpclient如何處理302重定向

非技術文章精選

  1. 爲何選擇軟件測試做爲職業道路?
  2. 成爲傑出Java開發人員的10個步驟
  3. 寫給全部人的編程思惟
  4. 自動化測試的障礙

公衆號地圖 ☢️ 一塊兒來~FunTester

相關文章
相關標籤/搜索