人生苦短,我用Python
一、准备工作
软件选择
- Python3.8
- pycharm
模块
requests #模拟请求
Selenium # 浏览器自动化操作
- win+r打开搜索框,输入cmd按确定打开命令提示符窗口,输入pip install 加上你要安装的模块名,
回车即可安装,下载速度慢就换国内镜像源。 - 然后要下载一个谷歌浏览器驱动,版本跟你的浏览器最相近的那个就行。
二、获取数据
页面分析
- 首先分析一下页面元素,我们一般是在首页输入框中输入你想搜的内容,然后跳转到搜索页面。
- 我们通过浏览器的检查页面,得到输入框和搜索图标的XPATH分别为:
input_xpath = '/html[1]/body[1]/div[1]/div[2]/div[1]/div[1]/input[1]'
button_xpath = '/html[1]/body[1]/div[1]/div[2]/div[1]/div[1]/input[2]'
- 在输入框输入要搜索的内容,操作搜索按钮转到结果页。
- 以搜索Python为例,共找到15,925条,300页,每页中包含20个条目,每个条目包含题目、作者、来源等等内容。
- 通过对当前页面分析发现每个条目对应的的xpath的规律
/html[1]/body[1]/div[5]/div[2]/div[2]/div[2]/form[1]/div[1]/table[1]/tbody[1]/tr[1]/td[2]
- 就是倒数第二个标签数字代表本页的第几个条目,最后一个标签 2 - 6
分别代表题目、作者、来源、发表时间和数据库。在当前页面无法或者文献的摘要信息,下载链接,需要进一步点击进入相关文献条目。 - 进入详情页面后,根据class name:abstract-text 能够很容易定位到摘要的文本,class name:
btn-dlcaj 定位到下载链接,其他元素也是一样的。
三、开始写代码!
导入要用的库
import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from urllib.parse import urljoin
创建浏览器对象,设置相关参数
get直接返回,不再等待界面加载完成
desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities["pageLoadStrategy"] = "none"
设置谷歌驱动器的环境