去年自学半月用python写的爬虫抢宿舍代码
小白,女孩。单纯感兴趣,喜欢计算机这玩意。
python的确挺好学的。我知道我的代码又超级多的地方不标准,冗赘
但是也算能跑的起来~
最后这个抢宿舍的代码我并没有用到
为什么呢
因为,学校网一开始抢宿舍就瘫痪了……
我写的代码还没有手动快!啊哈哈哈哈
钻研一个暑假,啥也没用到,不过学完很有成就感hh
# -*- coding: utf-8 -*-
import sys
import requests #发送请求用
import datetime #掐时间用
import time
from datetime import datetime
from threading import Timer
import json #好像没用到
import smtplib #发邮件提醒我
from email.mime.text import MIMEText
from bs4 import BeautifulSoup #正则匹配
import random #随机休息几秒
import selenium
from fake_useragent import UserAgent #防止反爬虫
#掐本地时间
localtime = time.asctime( time.localtime(time.time()) )
print '---------- [1] import module ok ----------'
#self information setting
#身份证号
UN= input ('!!!!! 1.please input your id number:')
UserName = str(UN)
Password = UserName[12:18] #密码就是身份证后六位
print '---------- [2] student data ok ----------'
def login1():#登录1
url1 = '抢宿舍的登录网址'#主页网址
headers1 = {
'Host': '根据F12给出的header信息填',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/68.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Accept-Encoding': 'gzip, deflate',
'Connection': 'keep-alive',
'Referer': '根据F12给出的header信息填',
'Upgrade-Insecure-Requests': '1',
'Cache-Control': 'max-age=0',
}
s = requests.session()#准备发送请求
resp1 = s.get(url1,headers=headers1,timeout=5)#获取页面,超时5s就停止
if resp1.status_code == 200:#如果200成功
print '---------- [4] url-1 ok ---------------5s'
time.sleep(random.randint(5,6))#休息5秒
login2()#进入第二个登陆函数
elif resp1.status_code != 200:#如果不是200成功
print '---------- [62] find an error ---------------10-20s'
print resp1.raise_for_status #检查是哪里出了问题
time.sleep(random.randint(10,20))#休息一下
login1()#重新回到登录1
def login2():#登录2,第二个页面,我们学校的验证码文本就在cookie里给出来了,直接匹配就行,,压根不用破解
url2 = ‘验证码网址'
headers2 = {
'Host': '根据f12填',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0',
'Accept': 'image/webp,*/*',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Accept-Encoding':