利用python+selenium爬取derwent数据库上的patents
需求:
登陆web of science,并进入derwent数据库,按照公司excel列表依次进行搜索,并将所有搜索道德记录下载至本地指定路径。
思路:和爬取cortellis的步骤基本相近,也是利用selenium模拟浏览器,主要涉及的模拟有:下拉菜单、按钮、input框,总体上讲并不复杂。
然而需要注意的是,derwent搜索结果如果为0,它会返回一个错误页面,当出现这种情况可以用一个try-except抓出来,再用selenium执行一次刷新即可。
缺点是大量的使用了try-except,也没有太好的解决方法,这个数据库的随机性实在是太大。
下面是代码:
from selenium import webdriver
import sys,io
from selenium.webdriver.common.by import By
import time
import xlrd
import json
import re,os
import requests
from selenium.webdriver.support.ui import Select
from openpyxl import Workbook
import pickle
def read_company(fileName):
bk=xlrd.open_workbook(fileName)
shxrange=range(bk.nsheets)
try:
sh=bk.sheet_by_name("Sheet1")
except:
print ("代码出错")
book = Workbook(encoding='utf-8')
UPC = []
tmp1 = sh.col_values(0)[1:] #company
return tmp1
#获取当前页面的cookie
def get_current_cookie():
cookie = browser.get_cookies()
jsonCookies = json.dumps(cookie)
#拼接
cookie_current = [item['name'] + '=' + item['value'] for item in cookie]
#这里注意每一个字段之间要有"; "分隔,否则无效
cookiestr = '; '.join(item