目标网站为https://s.wanfangdata.com.cn/advanced-search/paper
一共有三个函数,save_to_json,get_message,search。
def save_to_json(d,address,type):保存一个字典到相应json文件中。d为要保存的dict对象。address为保存路径文件夹。type为论文类型,‘qk’代表期刊论文,‘hy’代表会议论文,‘xw’代表学位论文。
def get_massages(nums,results):循环获取results中的nums个论文信息并调用save_to_json保存在json文件中。(这里我是每获取一个论文就保存一次)
def search(sums,keywords):根据输入的keywords和sums实现页面跳转和预备工作,然后调用get_massage获取每一页论文内容。
先模拟点击专业检索按钮
driver.find_element_by_xpath(’.//*[@class=“tab-item”]’).click()
然后在输入框内模拟输入筛选条件,driver.find_element_by_xpath(’.//*[@class=“text-input-area”]/div[1]/textarea’).send_keys(keywords)
点击检索
driver.find_element_by_xpath(’.//*[@class=“submit-btn”]’).click()
接下来就是判断需要获取的论文数量,因为有时候论文数量有可能小于你最初输入的要求数量,所以需要提前做一个对比,取小的那个。
min = lambda x, y: x if x < y else y
提前定义一个取小函数。
期刊,会议,学位三种论文不尽相同,所以有些字段需要各自处理。