爬取厦门大学校园卡余额
其实很简单,访问一次,把input全部取出来,登录,访问校园卡,爬那一行就好了有个小问题就是速度波动很大- -快到3.3s,慢的有10s,不过不管哪个都很慢- -#!/usr/bin/env python# _*_ coding:utf-8 _*_import requestsfrom bs4 import BeautifulSoupfrom lxml import etre...
·
其实很简单,访问一次,把input全部取出来,登录,访问校园卡,爬那一行就好了
有个小问题就是速度波动很大- -
快到3.3s,慢的有10s,不过不管哪个都很慢- -
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import requests
from bs4 import BeautifulSoup
from lxml import etree
import time
def query_card(username, password):
r = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/70.0.3538.102 Safari/537.36'}
url = 'http://ids.xmu.edu.cn/authserver/login?service=http%3A%2F%2Fi.xmu.edu.cn%2F'
html = r.get(url=url, headers=headers).text
soup = BeautifulSoup(html, 'lxml')
data = {
'username': username,
'password': password,
}
t = soup.find_all("input", attrs={'type': 'hidden'})
for tag in t:
data[tag.attrs['name']] = tag.attrs['value']
r.post(url=url, headers=headers, data=data)
url = 'http://i.xmu.edu.cn/?.pn=p967'
html = r.get(url=url, headers=headers).text
selector = etree.HTML(html)
t = selector.xpath('//div[@id="pf1034"]/div/div[last()]/table/tr[3]/td/text()')
return t[0]
# soup = BeautifulSoup(html, 'lxml')
# div = soup.find('div', attrs={'id': 'pf1034'})
# div = div.find('div')
# div = div.find_all('div')[-1]
# table = div.find('table')
# tr = table.find_all('tr')[2]
# return tr.string
username = 'SWE16004'
# 初始密码为身份证后6位,或在迎新系统修改的密码
password = 'faQ'
start = time.time()
print(query_card(username, password))
print(time.time() - start)
更多推荐



所有评论(0)