环境准备
爬取目标
- 专利网站
- 爬取专利名,申请人,发明人等
爬取过程
通过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操作模块,可供参考。