1、前提
本学期选了学习通的网课,无奈老师要求课程的访问量要达到300次,可是时间来不及了,于是决定用代码来帮我完成任务:
2、准备工作
①确保是python3版本,下载有selenium库,需要使用谷歌浏览器
②selenium 爬虫报错:Message: 'chromedriver' executable needs to be in PATH.解决办法
这里的报错说明没有安装谷歌浏览器驱动
解决方法:
https://blog.csdn.net/su_2018/article/details/100127223?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
③提前获取学习界面的url链接
3、Python代码
代码中只需要更改main方法中starturl = ""里面的学习页面链接
from selenium import webdriver
from selenium.webdriver.support.ui import webdriverwait
from selenium.webdriver.support import expected_conditions as EC
import time,os,json
#1、确保下载有selenium库
#2、下载浏览器驱动,配置到系统环境变量
def login(D, starturl):
print("首次登录,请在浏览器手动登录!")
D.get(starturl)
webdriverwait(D, 1000).until(
EC.url_to_be(starturl)
)
with open("cookies.json", "w", encoding="utf-8") as f:
json.dump(D.get_cookies(), f)
def main():
ft = float(input("请输入刷新频率(0.1 - 10)建议直接输入1:"))
# starturl = input("请输入课程首页链接:") 【个人使用可以不需要每次输入,用下面的方法】
#starturl = "" 输入学习界面url,下面的链接是个例子,请自己更改
starturl = "https://mooc1-1.chaoxing.com/mycourse/studentstudy?chapterId=351756254&courseId=214546396&clazzid=32891167&enc=8d165633ae6df57cfd1b7200602ee150"
#'F:\Google Chrome x64\chromedriver.exe'是驱动地址
D = webdriver.Chrome(r'F:\Google Chrome x64\chromedriver.exe')
if os.path.exists("cookies.json"):
print("自动登录ing...")
D.get(starturl)
with open("cookies.json", "r", encoding="utf-8") as f:
for cookie in json.load(f):
if "expiry" in cookie:
del cookie['expiry']
D.add_cookie(cookie)
D.get(starturl)
if D.current_url == starturl:print("自动登录成功!")
else: login(D, starturl)
else: login(D, starturl)
while True:
cells = D.find_elements_by_class_name("cells")
if D.current_url!=starturl:
print("被拦截啦!请输入验证码继续操作")
webdriverwait(D, 1000).until(
EC.url_to_be(starturl)
)
for cell in cells:
try:
cel = cell.find_elements_by_class_name("ncells")
for ce in cel:
time.sleep(ft)
print(ce.text)
ce.click()
except:
#请忽略此行D.get("https://mooc1-1.chaoxing.com/mycourse/studentstudy?chapterId=351756266&courseId=214546396&clazzid=32891167&enc=a7b0bf6be9aae494a195a0a98b57b414")
D.get(starturl)
break
#可选择手动关闭
#D.close()
if __name__ == "__main__":
main()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。