
写在前面
如果我们需要在期刊中搜索我们想要找的文章,那么我们如何才能达到这个目的。我们首先看一下,手动和自动对比图:

其实内容全部一样,我们只是用自动化程序,来代替我们手动操作。
1. 创建webdriver驱动对象,驱动打开网页
# 导入包
from selenium import webdriver
# 创建驱动对象,调用get方法并打开网页
wd = webdriver.Chrome()
# get方法打开网址
wd.get('http://www.plantcell.org/](http://www.plantcell.org/)
')
2. 找到搜索框元素
我们根据元素的id来找到我们要操作的搜索框,在第上一篇文章中,已经介绍了如何准确定位到网页元素,可以看这篇文章Web自动化(2):自动获取Plant Cell上最新文章标题,我们找到了input
标签,里面有很多属性让我们选择,我们通过id
属性来定位这个元素。
- 代码:
element = wd.find_element_by_id("edit-keywords--2")
用来找到这个输入框元素。

小技巧:我们可以通过command+F在网页源码中搜索这个属性,是否能够找到input元素。可以避免我们一次次通过代码来确定是否正确,节省时间。结果有两个id一样的,但是属于同一个搜索框的。找到的元素会显示高亮,且搜索框右边还有数量。
搜索结果
3. 输入文字和点击搜索
第二步找到元素,返回后是WebElement类型的对象,我们可以通过这个对象,对网页进行操作。调用相应的方法,比如send_keys
和click
方法,分别对应着输入字符串和点击。结果就会出现搜索内容,总共的搜索结果。
#查找cas9相关的文章,直接回车搜索
element.send_keys("cas9\n")
#或者找到搜索按钮元素,并进行点击操作
element.send_keys("cas9")
element1 = wd.find_element_by_id('edit-submit--2')
element1.click()
4. 完整的代码
from selenium import webdriver
wd = webdriver.Chrome()
wd.get('http://www.plantcell.org/')
element = wd.find_element_by_id("edit-keywords--2")
element.send_keys("cas9")
element1 = wd.find_element_by_id('edit-submit--2')
element1.click()
网友评论