用PyQt5写一个查询英语4级成绩的小程序,其中运用到了(selenium+xpath提取网页)

1.程序的主界面,主界面我用到了Qt Designer 工具来对主界面进行调整,这样比较方便也比较直观。
在这里插入图片描述
2.效果图,并且还增加了判断是否通过的逻辑
在这里插入图片描述
3.核心代码

def spider(self):
	  chrome_options = Options()
	  chrome_options.add_argument('--headless')
	  chrome_options.add_argument('--disable-gpu')
	  broser = webdriver.Chrome(executable_path='./chromedriver.exe', options=chrome_options)
	  url = "http://cet.neea.cn/html1/folder/21083/9970-1.htm"
	  broser.get(url)
	  name = self.ui.lineEdit.text()
	  num = self.ui.lineEdit_2.text()
	  broser.find_element_by_xpath('//*[@id="xm"]').send_keys(name)
	  broser.find_element_by_xpath('//*[@id="no"]').send_keys(num)
	  btn = broser.find_element_by_id('submitButton')
	  btn.click()
	  time.sleep(0.1)
  try:
      page = broser.page_source
      tree = etree.HTML(page)
      detial_score = tree.xpath('//*[@id="cjd-b"]/div[2]/div/div/span')
      all_detail = []
      all_detail.append(tree.xpath('//*[@id="cjd-b"]/div[2]/div/div/strong/text()')[0])
      for score in detial_score:
          num = score.xpath('./i/text()')[0]
          all_detail.append(num)
  except Exception as e:
      print('未查询到该用户的考试成绩!', e)
      if e:
          QMessageBox.about(self.ui, 'Error:', '未查询到该用户的考试成绩!')
  broser.quit()
  return all_detail

总结 :
代码还有很多地方都值得修改,很多功能没完善,只是简单的把功能实现了一下。
问题1:在网站进行访问的时候数据不能提取太快。因为还没加载完成,要先睡个一小会儿,才能加载出来
问题2:在调用类的初始化属性的时候在函数内部无法使用,我觉得应该是因为我使用的是利用UI文件进行对软件整体布局的读取,所以再最后调用的时候导致了不是真正调用的这个类方法,而是调用的是UI相关的属性。所以没有调用初始化属性成功。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_leven

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

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

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

打赏作者

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

抵扣说明:

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

余额充值