Selenium爬取万方论文网站

本文介绍了一个利用Selenium Python库爬取万方数据网站上期刊、会议和学位论文信息的过程。通过定义save_to_json、get_massages和search三个函数,实现了数据抓取与保存。首先模拟点击专业检索按钮,输入筛选条件,然后逐页获取论文内容并保存到不同的JSON文件中。每个页面最多显示20篇论文,通过XPath表达式('.//*[@class="next"]')进行页面跳转。
摘要由CSDN通过智能技术生成

目标网站为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
提前定义一个取小函数。

期刊,会议,学位三种论文不尽相同,所以有些字段需要各自处理。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值