使用selenium自动化测试工具爬取高考相关院校专业招生分数线及排名情况

随着高考分数公布,填报大学和专业成了各位家长最重要的事情,这两天有好几位亲戚朋友咨询专业填报的事情,发现了一个网站内容不错,提供了各个学校各个专业的最低分数线和最低录取名次,网站链接在这里,这个就是计算机类专业在浙江招生的情况,专业可以换掉。
在这里插入图片描述
这个页面的内容还是很简单的,但是他的分页(不同年份)通过get请求没法体现,应该是用前后端分离的模式开发的,所以通过网页请求来爬虫可能不太容易实现,所以使用了selenium进行自动化提取,并自动化跳转页面。
代码如下:

from selenium import webdriver
import time
import pandas as pd
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome(r'C:\Users\HP\Downloads\chromedriver_win32\chromedriver.exe')
#time.sleep(5)
driver.get("https://www.zjut.cc/zhuanye/fsx-0809-33.html") 
# time.sleep(15)
# url = driver.find_element_by_xpath("/html/body/div/div/section/main/div/div[4]/div/div[1]/div/div/div[3]/table/tbody/tr[1]")

# url = driver.find_element_by_xpath("/html/body/div/div/section/main/div/div[4]/div/div[1]/div/div/div[3]/table/tbody/tr[1]/td[2]/div")
# scqy = driver.find_element_by_xpath("/html/body/div/div/section/main/div/div[4]/div/div[1]/div/div/div[3]/table/tbody/tr[1]/td[2]/div").text
vehicles = []
res = []
for j in range(4):
    schools = []
    if j < 2:
        for i in range(100):
            series = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div/div[1]/div/div[2]/table/tbody/tr[{}]/th".format(1+i)).text
            school_name = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div/div[1]/div/div[2]/table/tbody/tr[{}]/td[1]/a".format(1+i)).text
            major = driver.find_element_by_xpath('//*[@id="pills-2021"]/div/div[2]/table/tbody/tr[{}]/td[1]/small[2]'.format(1+i)).text
            min_score = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div/div[1]/div/div[2]/table/tbody/tr[{}]/td[2]".format(1+i)).text
            min_rank = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div/div[1]/div/div[2]/table/tbody/tr[{}]/td[3]".format(1+i)).text
            plan = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div/div[1]/div/div[2]/table/tbody/tr[{}]/td[4]".format(1+i)).text
            schools.append([series, school_name, major, min_score, min_rank, plan])
    else:
        for i in range(100):
            series = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div/div[3]/div/div[2]/table/tbody/tr[{}]/th".format(1+i)).text
            school_name = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div/div[3]/div/div[2]/table/tbody/tr[{}]/td[1]/a".format(1+i)).text
            major = driver.find_element_by_xpath('//*[@id="pills-2021"]/div/div[2]/table/tbody/tr[{}]/td[1]/small[2]'.format(1+i)).text
            min_score = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div/div[3]/div/div[2]/table/tbody/tr[{}]/td[2]".format(1+i)).text
            min_rank = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div/div[3]/div/div[2]/table/tbody/tr[{}]/td[3]".format(1+i)).text
            plan = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div/div[3]/div/div[2]/table/tbody/tr[{}]/td[4]".format(1+i)).text
            schools.append([series, school_name, major, min_score, min_rank, plan])
    df = pd.DataFrame(schools, columns=['排序', '院校', '专业', '最低分', '最低排名', '计划招录人数'])
    
    df.to_excel("%d.xlsx" % (-j + 2021), index=False)
    # res.append(schools)
    
    a = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/ul/li[{}]/a".format(1+j))
    driver.execute_script("arguments[0].click();", a)
    
    time.sleep(3)

可以看出来,绝大多数用的xpath,但也有一些细节需要解释,等空了再来解释。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Selenium是一个用于Web应用程序测试的自动化测试工具。它包含了多个组件,包括Selenium IDE、Selenium WebDriver和Selenium Grid。下面是使用Selenium进行自动化测试的一般步骤: 1. 安装Selenium:首先,你需要安装Selenium。你可以通过pip命令来安装Selenium库: ```shell pip install selenium ``` 2. 配置浏览器驱动:Selenium需要与浏览器进行交互,所以你需要下载并配置相应的浏览器驱动。例如,如果你使用的是Chrome浏览器,你需要下载ChromeDriver并将其添加到系统的PATH环境变量中。 3. 创建WebDriver对象:在Python中,你可以使用Selenium WebDriver来控制浏览器。首先,你需要导入WebDriver模块,并创建一个WebDriver对象。例如,如果你使用的是Chrome浏览器,你可以这样创建WebDriver对象: ```python from selenium import webdriver driver = webdriver.Chrome() ``` 4. 打开网页:使用WebDriver对象的`get()`方法来打开一个网页。例如,你可以打开百度首页: ```python driver.get("https://www.baidu.com") ``` 5. 定位元素:使用Selenium的定位方法来定位页面上的元素。例如,你可以使用`find_element_by_xpath()`方法来通过XPath定位元素: ```python element = driver.find_element_by_xpath("//input[@id='kw']") ``` 6. 执行操作:一旦你定位到了元素,你可以执行各种操作,比如输入文本、点击按钮等。例如,你可以使用`send_keys()`方法来输入文本: ```python element.send_keys("Selenium") ``` 7. 关闭浏览器:当你完成测试后,记得关闭浏览器。你可以使用`quit()`方法来关闭WebDriver对象: ```python driver.quit() ``` 这是一个简单的Selenium自动化测试的示例。你可以根据自己的需求和具体的测试场景来使用Selenium的其他功能和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栀椩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值