前言—功能:这个可以用来爬取微博信息,自定义时间间隔,来爬取用户的微博动态,最后调用短信接口,来提醒用户被监控用户发微博了(因为微博里面有特别关注这个功能,所以这个实战,也仅仅只是兴趣了)
一、简介:
二、准备阶段:
document.cookie
这时,控制台就会打出此时的 cookie三、模拟请求 header
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0'
,'Cookie':'此处填入一开始从浏览器获得的cookie'}
以上则是一个被改造了的 header 模拟了一个User-Agent 来防止发现是机器人在获取网页,cookie 是带入个人信息,跳过登录
四、
决定好要爬取几个人的信息:
这里我决定的是爬取两个人的信息,所以我定义了两个数组。
latested_msg=["",""]#记录每个人最新的时间
latested_content=["",""]#记录每个最新微博,防止时间改变,重复发短信
创建本地文件:
首先我的思路是这个样子的,因为我的电脑不可能一直都处于开机状态,所以每次我启动这个程序,用来存历史信息的数组在初始化的时候都会初始化为空,然后微博上爬下来的内容相对于空来说是种更新状态,而不论是不是真的更新了,所以我就创建了一个本地文件,每当用户更新的时候,重写一下文件,每当我重启程序的时候,都会读取这个本地文件来初始化历史信息数组,这样就可以防止短信浪费,毕竟短信也是需要花钱的。
#这个本地文件需要注意格式,请读者注意一下,体会一下代码是如何写入的
if not os.path.exists(dir_path): # 创建文件夹
os.mkdir(dir_path)
path = dir_path + TXT_path
with open(path, "w") as f: # 写入更新数据,重写每一个user
for i in range(0,len(latested_msg)):
f.write(user[i]+"\n")#写入用户
f.write(latested_msg[i]+"\n")#写入最新的微博时间
f.write(latested_content[i]+"\n")#写入最新的微博内容
五、处理短信接口
这里的短信接口我使用的是榛子云科技所提供的短信接口,这个个人用户只能使用应用名称为【测试】的应用,不过不影响使用,像其他的如:阿里、腾讯等等,如果发送自定义短信内容的,都需要认证,这就很烦,还好找到了这个,不过这个得花钱,初始免费短信只有1条,后来我又充值了10块共270条短信,网址:http://sms_developer.zhenzikj.com/zhenzisms_user/login.html
六、遇到的问题