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相关的属性。所以没有调用初始化属性成功。
|