利用爬虫和微信机器人自动刷甘肃教师学苑学分

我之前在python爬虫帮妈妈刷学分这篇博文记录过刷学分的历程,只不过当时没有用微信机器人自动刷学分,还是需要给公众号手动输入代码。
这里我引进了“可能是最优雅的微信个人号 API”-wxpy来实现了自动化。
具体代码如下:

#url2txt 
#把url批量存入url.txt
import urllib.request as request
import urllib.parse as parse
import string
import re
import os
import urllib.error as error
import urllib

def fetch(baseUrl):

    # 第1步:模拟浏览器发送请求
    response = urllib.request.urlopen(baseUrl)
    data = response.read()
    data=data.decode('utf-8')

    # 第2步:页面返回后,利用正则表达式提取想要的内容
    nameList=[]
    nameList = re.compile(r'<a href="(.*?)" >',re.DOTALL).findall(data)

    # 第3步:返回在页面上析取的“标题名”
    return nameList

#######     执行    ########
if __name__ =="__main__":
    #要抓取的网页地址
    url = "http://jsxy.gsedu.cn/wx/course/courseSelect.xhtm?FromUserName=obK7fskWFpwRPTYswm7NipdP6sJM&unread=1"
    #存放到名字列表中
    NameList = fetch(url)

    # 输出 NameList
    Length = len(NameList)
    for i in range(0, Length):
        print ('%d ref is:%s' %(i+1, NameList[i]))
with open(os.path.join('url.txt'), 'w') as f:
    for i in range(0,Length):
        f.write("\n")
        f.write(NameList[i])

上面代码会把所有的未读文章url写入url.txt。
这里写图片描述

然后需要把这里面的全部url批量解析,把文章代码批量存入code.txt,代码如下:

import urllib.request as request
import urllib.parse as parse
import string
import re
import os
import urllib.error as error
import urllib

def fetch(baseUrl):

    # 第1步:模拟浏览器发送请求
    response = urllib.request.urlopen(baseUrl)
    data = response.read()
    data=data.decode('utf-8')

    # 第2步:页面返回后,利用正则表达式提取想要的内容
    nameList=[]
    nameList = re.compile(r'请直接回复“(.*?)</strong>',re.DOTALL).findall(data)

    # 第3步:返回在页面上析取的“标题名”
    return nameList




#######     执行    ########
if __name__ =="__main__":

    with open(os.path.join('url.txt'), 'r') as f:
        for line in f.readlines():
            NameList = fetch(line)
            with open(os.path.join('code.txt'), 'a') as f:
                f.write("\n")
                f.write(NameList[0])

这里写图片描述

这里会出现极少的错误和无用数据,自己手工删除下即可。
然后利用wxpy机器人给甘肃教师学苑公众号定时发送消息即可:

# 导入模块
from wxpy import *
# 初始化机器人,扫码登陆
bot = Bot()

gansu = bot.mps().search(u"甘肃教师学苑")[0]
gansu.send('5207')

然后就能看到:
这里写图片描述

如果你觉得本文有用,可以给作者打赏一下。

这里写图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值