webmagic+selenium模擬瀏覽器啓動(動態網頁爬取方法之一的第一步)

現在絕大多數網頁都是動態生成的,那麼學習爬蟲就意味着更加困難。若是靜態網頁,只需要瞭解如何連接網絡和分析網頁源代碼提取標籤信息即可,但是動態網頁的話,就需要使用到一些特定的框架來爬取了。比較實用的爬取動態網頁信息的其中一個工具就是selenium了。先來看看要怎樣使用webmagic和selenium來模擬瀏覽器啓動吧。

代碼如下所示:

import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.downloader.selenium.SeleniumDownloader;
import us.codecraft.webmagic.processor.example.GithubRepoPageProcessor;

public class LiuLanQiTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//selenium系統配置,其中的路徑寫自己config文件的路徑
		System.setProperty("selenuim_config", "D:\\jse-workspace\\WebMagicTest\\Study\\src\\main\\java\\Four\\config.ini");	
		Spider.create(new GithubRepoPageProcessor())//調用一個webmagic中封裝好的一個網頁爬取類
		.addUrl("http://www.baidu.com")//要爬取的網頁
		//瀏覽器驅動(動態網頁信息通過模擬瀏覽器啓動獲取)
		.setDownloader(new SeleniumDownloader("D:\\ChromeDriver\\chromedriver_win32(2)\\chromedriver.exe"))
		.thread(3)//啓動n個線程(此語句表示啓動3個線程)
		.run();//啓動爬蟲,會阻塞當前線程執行(及n個線程不是同時執行的)
//		。runAsync();//啓動爬蟲,當前線程繼續執行(及n個線程同時執行)
		}
}
當出現如下頁面時,說明啓動瀏覽器成功。


!!!需要注意的是,用此代碼模擬瀏覽器啓動的時候,要先將webmagic和selenium所需要的包全部導入到所建項目中,並且下載過chrome驅動。

若創建的項目是maven項目,則可以直接在pom.xml文件中加入如下語句:

    	<dependency>
	    <groupId>us.codecraft</groupId>
	    <artifactId>webmagic-core</artifactId>
	    <version>0.7.3</version>
	</dependency>
	<dependency>
	    <groupId>us.codecraft</groupId>
	    <artifactId>webmagic-extension</artifactId>
	    <version>0.7.3</version>
	</dependency>
	<dependency>
		<groupId>us.codecraft</groupId>
		<artifactId>webmagic-selenium</artifactId>
		<version>0.7.3</version>
	</dependency>
	<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-java</artifactId>
		<version>3.0.1</version>
	</dependency>
	<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-chrome-driver</artifactId>
		<version>3.0.1</version>
	</dependency>
	<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-server</artifactId>
		<version>2.18.0</version>
	</dependency>
再有就是要在所建項目下新建config配置文件,文件內容可以參照我的config.ini文件來寫,文件內容如下:

# What WebDriver to use for the tests
#driver=phantomjs
#driver=firefox
driver=chrome
#driver=http://localhost:8910
#driver=http://localhost:4444/wd/hub

# PhantomJS specific config (change according to your installation)
#phantomjs_exec_path=/Users/Bingo/bin/phantomjs-qt5
#phantomjs_exec_path=d:/phantomjs.exe
chrome_exec_path=C:\Users\sky\AppData\Local\Google\Chrome\Application\chrome.exe
#phantomjs_driver_path=/Users/Bingo/Documents/workspace/webmagic/webmagic-selenium/src/main.js
#phantomjs_driver_loglevel=DEBUG
chrome_driver_loglevel=DEBUG
其中的#表示註釋。

在執行代碼過程中若碰到其他問題,可以參考我前面的兩個博客看能否將問題解決。

http://blog.csdn.net/without_scruple/article/details/78311942http://blog.csdn.net/without_scruple/article/details/78312445





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章