環境準備
爬取目標
- 專利網站
- 爬取專利名,申請人,發明人等
爬取過程
通過selenium獲取PhantomJs的webdriver實例
先導入webdriver的包
from selenium import webdriver
獲取實例
driver = webdriver.PhantomJS(executable_path=’.\res\phantomjs.exe’)
其中,executable_path爲PhantomJs.exe的位置。
- 連接網址
driver.get(url_path)
填寫查詢信息
- 通過chrome查看了元素的dom,如圖:
- 根據顯示編寫js代碼,然後用webdriver執行腳本,舉個例子
driver.execute_script(“document.getElementById(\”tableSearchItemIdIVDB021\”).setAttribute(\”value\”,\”” + inventor + “\”)”)
- 填寫完相應參數後,提交表單。
- 通過chrome查看了元素的dom,如圖:
採集數據
根據chrome獲取各個參數的路徑。如圖
通過webdriver執行js腳本,獲取各參數,舉個例子
driver.execute_script(“return document.getElementsByClassName(\”item\”).length;”)
採集過程中,可能會遇到各種各樣的問題,比方說:
查詢超時,需要刷新瀏覽器,可用
driver.refresh()
可能需要判斷頁面中含有什麼字符串,可通過一下代碼獲取:
driver.page_source
關閉瀏覽器
driver.quit()
代碼資源
https://github.com/will4906/PatentCrawler
代碼中含有將xlwt,xlrd和xlutils用工廠模式封裝的excel操作模塊,可供參考。