python爬虫

396次阅读
没有评论

到了期末考完试,发现了微信以前的那个西邮在线小程序不能直接查成绩了,要查成绩需要登录官网,点击成绩查询才可以看到成绩,因此我使用python爬虫制作了一个学校网站个人成绩的爬虫,我们学校的网站确实还是有点东西的,反爬做的很好,把重要的信息的源代码都隐藏了起来,但是经过我一下午的实践,终于还是搞出来了,我的思路是:
1.首先使用selenium模拟登陆
2.使用规则找到查询按键对应的路径
3.使用模拟鼠标点击功能进行点击查询
4.成绩出来以后,因为代码看不到,没法把信息爬取出来,因此我使用了selenium的截图功能,对成绩进行了截图保存(核心步骤)
5.使用tkinter只做了一个简单界面,可以实现登录,显示成绩截图功能
6.使用pyinstaller进行打包,这样发给同学们就能直接用了
经过我以上的步骤,学校官网的信息就能爬取出来了
https://github.com/Spider-Man123/xiyou-Final-Results-Spider
一:上代码

from selenium import webdriver from selenium.webdriver.chrome.options import Options import time import tkinter as tk import random def chaxun():#模拟登陆,登陆后进行点击查询 m=link.get() n=link2.get() url='http://www.zfjw.xupt.edu.cn/jwglxt/cjcx/cjcx_cxDgXscj.html?gnmkdm=N305005&layout=default&su={}'.format('m') chrome_options = Options() chrome_options.add_argument('–headless') browser = webdriver.Chrome(options=chrome_options) browser .get(url) input=browser .find_element_by_xpath('//*[@id="yhm"]') input.send_keys(m) input1=browser .find_element_by_xpath('//*[@id="mm"]') input1.send_keys(n) m1=browser .find_element_by_xpath('//*[@id="dl"]') m1.click() r=browser .find_element_by_xpath('//*[@id="search_go"]') r.click() time.sleep(3) #随机生成一个数字,进行对图片的保存 a = random.choice([1, 2, 3, 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]) p=a #找到所需信息路径进行截图 browser.find_element_by_xpath('//*[@id="gbox_tabGrid"]').screenshot('chengji{}.png'.format(p)) window.destroy() top = tk.Tk() top.title('spider-man.西安邮电大学成绩查询') top.geometry('700×500') canva = tk.Canvas(top,height=500,width=700) image_files = tk.PhotoImage(file='chengji{}.png'.format(p)) canva.create_image(0, 0, anchor='nw',image=image_files) canva.pack() top.mainloop() window=tk.Tk() window.title('spider-man.西安邮电大学成绩查询') window.geometry ('400×500') canvas=tk.Canvas(window,bg='blue',height=135,width=190) image_file=tk.PhotoImage (file='1.png') canvas .create_image(0,0,anchor='nw',image=image_file) canvas .pack() l=tk.Label (window,text='请输入账号',bg='yellow',font=('Calibri',25),width=10,height=2) l.pack() link= tk.Entry(window,width=20) link.pack() l2=tk.Label (window,text='请输入密码',bg='yellow',font=('Calibri',25),width=10,height=2) l2.pack() link2=tk.Entry(window,width=20,show='*') link2.pack() b=tk.Button (window,text='查询',bg='orange',font=('Calibri',25),width=10,height=1,command=chaxun) b.pack() c=tk.Label(window,text='出现BUG加我QQ:1220785153',font=('黑体,10'),width=30,height=2) c.pack() window.mainloop()

二:结果展示
1.输入账号和密码进行登录
python爬虫
2.点击查询得到结果
python爬虫
三:打包的EXE程序可以直接下载使用
现在完后电脑需要有 Google Chrome 和相对应的驱动,因为使用到了selenium这个库,需要调用浏览器打开网页
我把一个驱动载文件里面放着,对应的谷歌版本是
版本 75.0.3770.142(正式版本) (64 位)
链接:https://pan.baidu.com/s/1ojDFIIXJNznyAfMXHRatlg
提取码:gqmy

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-10-24发表,共计2831字。
新手QQ群:570568346,欢迎进群讨论 Python51学习