原文取自 木华生的帖子
https://blog.csdn.net/qq_28491207/article/details/84261732

以前看了上文的帖子,感觉对自己有用,分享一下。
在这里我就细说一下步骤,给大家提供较完整的教程:本文对源代码进行了删减,源代码功能更多,感兴趣可以回去研读一下

功能:
爬取课程,若有课程给自己发送邮件,用微信或者QQ邮箱给自己提醒

  • 第一步:首先你要安装python IDE

    本文采用python3.7.0下载地址如下
    链接:https://pan.baidu.com/s/1liQ4Z32kXo6secQpMYQw_w
    提取码:2qn3

    步骤:
    1.解压
    2.以管理员身份运行python3.7.0- amd64
    3.注意勾选Add python 3.7 to path,点击Customize installation
    4.点击next
    5.自己选择安装目录
    6.结束后关闭安装程序,在开始菜单栏里找到IDLE python

  • 第二步:拷贝相应代码并更改相应数据

1.打开IDLE

2.点击新建窗口File-New File,将以下代码复制进去

import requests, smtplib, email, time
from bs4 import BeautifulSoup as bs  # 使用 BeautifulSoup库对页面进行解析
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.header import HeaderMAX = 18  # 作为周数的约束条件,最大值为21
INI = 125  # 作为访问失败的无效值,随意定的
session = requests.Session()# 登录EPC
url_login = 'http://epc.ustc.edu.cn/n_left.asp'
data = {'submit_type': 'user_login','name': '**********','pass': '**********','user_type': '2','Submit': 'LOG IN'
}
resp = session.post(url=url_login, data=data)# 解析页面,返回列表:[week,星期,教师,学时,上课时间,教室]
def getInfo(url):resp = session.get(url)resp.encoding = resp.apparent_encoding# print(resp.text)soup = bs(resp.text, 'html.parser')tds = soup.select('td[align="center"]')return [int(tds[14].string[1:3]), tds[15].string, ] + [string for string in tds[18].strings]# tds[0] #只显示可预约# tds[1] #预约单元# tds[2] #周数# tds[3] #星期几# tds[4] #教师# tds[5] #学时# tds[6] #上课时间# tds[7] #教室……# tds[14] #第多少周# tds[15].string #星期# tds[16].string #教师# [x for x in tds[18].strings] #时间def getEPC():# 返回数据:字典# key:name or INI# value:[week,星期,教师,学时,上课时间,教室] or [INI]try:url1 = 'http://epc.ustc.edu.cn/m_practice.asp?second_id=2001'  # Situational dialogueurl2 = 'http://epc.ustc.edu.cn/m_practice.asp?second_id=2002'  # Topical discussionurl3 = 'http://epc.ustc.edu.cn/m_practice.asp?second_id=2003'  # Debateurl4 = 'http://epc.ustc.edu.cn/m_practice.asp?second_id=2004'  # Dramaurl7 = 'http://epc.ustc.edu.cn/m_practice.asp?second_id=2007'  # Pronunciation Practiceinfo = {}info['Situational Dialogue'] = getInfo(url1)info['Topical Discussion'] = getInfo(url2)info['Topical Discussion'] = getInfo(url2)info['Debate'] = getInfo(url3)info['Pronunciation Practice'] = getInfo(url7)return infoexcept:return {INI: [INI]}# 邮箱发送
def Send_mail(text):msg_from = '542127509@qq.com'  # 发送方邮箱passwd = '************'  # 填入发送方邮箱的授权码msg_to = '648810974@qq.com'  # 收件人邮箱subject = "课程爬取"  # 主题msg = MIMEText(text)msg['Subject'] = subjectmsg['From'] = msg_frommsg['To'] = msg_totry:s = smtplib.SMTP_SSL("smtp.qq.com", 465)s.login(msg_from, passwd)s.sendmail(msg_from, msg_to, msg.as_string())print('succeed')except: print("发送失败")finally:s.quit()# 主程序
while 1:status = Trueinfo = getEPC()print(time.ctime(), ':')for key, value in info.items():print('{}:{}'.format(key, value))print('\n')for value in info.values():if value[0] < MAX:text = 'There is a course of {} in week{},{},{},{}'.format(key, value[0], value[1], value[2], value[3],end='\n\n')print(text)Send_mail(text)else:print('暂时没有符合条件周数的课')time.sleep(60)  # 这里修改刷新频率

**

  • 第三步:修改参数:

**
1.MAX = 18改成你想要的周数
2.data中红色部分为自己账号密码:

3.图片处加#号为不想要的课程,例如:只想选debate,把别的url都加上#,记得要对称的加

4.以下四个与邮箱相关的地方地方更改

这里授权码可以百度一下(非qq密码),qq邮箱授权码获取如下:

https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28

**

  • 第四步:运行脚本点击Run-Run model

**

**

  • 其他事项:

**
有的同学运行是发现如下提示,因为没有安装相应的requests库函数,

解决步骤:
1.在win10下输入框内输入cmd并运行

2.安装requests库,输入如下代码,回车:
pip install requests

注释:(若bs4库没安装,与之类似,输入 pip install bs4)

部分同学遇到如下情况,只需将匡内部分复制到命令框运行即可,重复上一步(无此现象忽略)

第四部:将QQ邮箱与微信绑定,关注公众号或者下载QQ邮箱即可

中科大EPC课程爬取-带步骤相关推荐

  1. 如何利用 C# 爬取带 Token 验证的网站数据?

    在对文本数据的情感分析中,基于情感词典的方法是最简单也是最常用的一种了. 它的大体思路如下: 对文档分词,找出文档中的情感词.否定词以及程度副词,然后判断每个情感词之前是否有否定词及程度副词,将它之前 ...

  2. 面向CCF目录中的论文暴力爬取实现

    目录 面向CCF目录中期刊论文暴力爬取实现 第一章.数据对象说明 CCF:中国计算机学会 给出的推荐目录 DBLP数据库:没有任何==反爬机制==的计算机在线论文数据库 第二章.爬虫代码实现 第一步. ...

  3. 爬取网易云音乐个人动态中的视频(Ⅲ): 实现爬取过程

    回顾 有了 爬取网易云音乐个人动态中的视频(Ⅰ) 和 爬取网易云音乐个人动态中的视频(Ⅱ) 的铺垫, 编写爬虫的代码便显得没那么突出了. 实现 直接show代码! 给出加密的代码 encrypt_ap ...

  4. bs4爬取的时候有两个标签相同_4.4 爬虫中的bs4数据爬取步骤

    >>.第三方包先安装 beatifulsoup抓取工具 位置:第三方开发包,如果使用,则需要单独下载的工具包 安装:后台命令:9版本以下----pip install bs4 或者 pip ...

  5. token验证_如何利用 C# 爬取带 Token 验证的网站数据?

    在对文本数据的情感分析中,基于情感词典的方法是最简单也是最常用的一种了. 它的大体思路如下: 对文档分词,找出文档中的情感词.否定词以及程度副词,然后判断每个情感词之前是否有否定词及程度副词,将它之前 ...

  6. 【Python爬虫】5行代码破解验证码+网页数据爬取全步骤详细记录

    文章目录 前言 一.抓包分析 二.编写模块代码 1.引入库 2.获取验证码图片 3.识别验证码 4.爬取列表页 5.爬取详情页 6.完整代码 总结 1.TIPS 2.如需交流,可在代码头找到我,或者用 ...

  7. python爬取数据步骤_Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

  8. python爬取app中的音频_Python爬取抖音APP,只需要十行代码

    环境说明 环境: python 3.7.1 centos 7.4 pip 10.0.1 部署 [root@localhost ~]# python3.7 --version Python 3.7.1 ...

  9. python3爬取带密码的网站_Python3 爬取网站收藏数超过70的 情侣网名

    [Python] 纯文本查看 复制代码# coding=utf-8 # python 3.7 import urllib.request,urllib.error import re import t ...

  10. python爬虫网页中的图片_Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片http://pic.s ...

最新文章

  1. linux下poll和epoll内核源代码剖析
  2. deepspeaker(TensorFlow)百度声纹识别和对比代码和模型
  3. Java练习 SDUT-2401最大矩形面积
  4. Telephone Number
  5. 行人跟踪python_使用Python为初学者构建AI汽车和行人跟踪
  6. 网友投诉顺丰快递员私拆快递物品摆拍、言语骚扰 官方处理来了...
  7. jpg图片使用pil的resize后_刚毕业,求解“pdf转换为jpg”的操作教程
  8. 常用颜色及RGB配色表
  9. 标志设计|标识设计|商标设计|logo设计|的起源
  10. springBoot添加日志管理
  11. 蓝桥杯C语言算法提高:复数归一化
  12. 你的每行代码值多少钱?
  13. 纯css实现乌云密布的天气图标
  14. 360浏览器浏览网页字体模糊的解决方法
  15. 如何将mp4视频压缩到最小?
  16. 联想微型计算机开机黑屏什么原因,联想电脑开机后显示屏是黑屏怎么办
  17. 复旦大学郁喆隽:网络制造出人的“幻象”,深度思考如何可能?
  18. mtd和mtdblock的区别
  19. c语言编程曹冲称象,《曹冲称象》教学设计
  20. 2022爱分析· 虚拟化活动厂商全景报告 | 爱分析报告

热门文章

  1. 通信总线协议二 :RS232和RS485
  2. php7和PHP5对比的新特性和性能优化
  3. 数独超难题目_超难数独基本解题法
  4. visio2003 FK
  5. SQL Plus的使用详解(登录和常用命令)
  6. 锐捷云终端计算机,锐捷RG-RCM1000-Office智能云终端控制器
  7. android widget包说明与应用
  8. Smarty中文手册
  9. Ovi Store标志着App store模式大战正式开启
  10. oracle12c集群安装—grid安装