python 模拟登录URP教务处系统

本人是太原理工大学的一名学生,我们学校的教务系统使用的是URP教务管理系统。该系统是一款JSP系统,其中还使用iframe标签。我们学校特别添加了验证码校验。😓😓

阅读全文

python爬取代理IP

为什么要使用代理

由于使用固定的IP地址,会被所爬取的网站封掉IP禁止爬虫。所以使用代理可以避免被封掉IP爬取不到内容。
在交换期间,听说CCU同学爬取stackoverflow内容,造成工学院的网络不能登录stackoverflow。😅

#encoding=utf-8
from bs4 import BeautifulSoup
import requests
import random
headers = {
'accept': "*/*",
'accept-language': "zh-CN,zh;q=0.8,zh-TW;q=0.6",
'content-type': "application/x-www-form-urlencoded",
'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36",
'x-requested-with': "XMLHttpRequest",
'cache-control': "no-cache",
}
def getproxy():
url="http://www.xicidaili.com/nn/"; #代理网站
r=requests.get(url,headers=headers) #使用requests库,直接回去response内容
soup=BeautifulSoup(r.text,'html.parser') #获取BeautifulSoup对象
ip=''
port=''
proxy_list=[]
for odd in soup.find_all('tr',class_='odd'): #每一个IP都在<tr>中,并且class为odd
i=1
for td in odd.find_all('td'): #获取第二个和第三个td内容,分别是IP和Port
if(i==2):
ip=td.text
if(i==3):
port=td.text
proxy = 'http://'+ip + ':' + port
proxy_list.append(proxy) #将内容添加到数组里
i=i+1
r = random.randint(0, 2)
return proxy_list[r]
#以下内容为爬去知乎日报的测试
# ip=getproxy()
#
# proxies={
# 'http':ip
# }
# url='http://daily.zhihu.com'
#
# response=requests.get(url,headers=headers,proxies=proxies)
# print response.text

阅读全文

OS X上强大的拓展工具PopClip

基本功能

PopClip会在光标选中后弹出黑色小框。提供查询,复制,粘贴等一系列的快捷按钮。减少了继续按键盘的烦恼。并且支持链接的跳转,邮件跳转,以及单词拼写纠正。

阅读全文

学习python的正则表达式

正则表达式的一些匹配规则

. 匹配任意的字符除\d意外
* 匹配前一个字符0次或无限次
+ 匹配前一个字符1次或无限次
? 匹配前一个字符0次或1
{m} 匹配前一个字符m次
{n,m} 匹配前一个字符m-n次,n省略为0-m,m省略为m-无限
| 匹配左右代表式任意匹配一个,如果左右成功则跳过右边
^ 匹配字符开头
$ 匹配字符结尾
\A 仅匹配字符串开头
\Z 仅匹配字符串结尾
\d 匹配数字
\D 匹配非数字
\s 匹配空白
\S 匹配非空白
\w 匹配单词字符
\W 匹配非单词字符

阅读全文

electron-builder打包

阅读全文

OS X 精简 Mac 菜单栏应用图标

软件图片
下载地址

阅读全文

OS X自带的Wi-Fi扫描软件

先按住 Option 点击 Wi-Fi 按钮,然后选择打开无线诊断。
再点击菜单栏的 窗口 > 扫描,就能直接看到扫描结果。
Wi-Fi图片
通过该方式可以在路由管理界面选择最优的无线信道,从而避免2.4G(802.11b/g/n)下的干扰。
不过由于现在AP的过多,最优的方式还是选择支持5G(802.11a/h/j/n/ac)的路由器。

阅读全文

OS X的三指拖移功能

自从OS X更新EI Capitan 起,macOS 上针对触控板的「三指拖移」功能被隐藏。需要额外的方式启动。
打开「系统偏好设置」,点选「辅助功能」;
点选「鼠标与触控板」,打开「触控板选项」;
勾选「启用拖移」,点选「三指拖移」,保存退出。

阅读全文

知乎图片下载爬虫

使用了一个知乎目前已经修改的API。但是仍能使用。
目前是3线程,token是问题URL的后缀。
效率不是很高。

#encoding=utf-8
import requests
import urllib2
from bs4 import BeautifulSoup
import urllib
import threading
mutex = threading.Lock()
Num=0
def getMsg(token,x):
import json
url = "https://www.zhihu.com/node/QuestionAnswerListV2"
payload = {
'method':'next',
###修改url_token改变知乎的问题
'params':'{"url_token":'+str(token)+',"pagesize":0,"offset":'+str(x)+'}'
}
headers = {
'accept': "*/*",
'accept-language': "zh-CN,zh;q=0.8,zh-TW;q=0.6",
'content-type': "application/x-www-form-urlencoded",
'host': "www.zhihu.com",
'origin': "https://www.zhihu.com",
'referer': "https://www.zhihu.com/question/41155042",
'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36",
'x-requested-with': "XMLHttpRequest",
'cache-control': "no-cache",
}
post_data=urllib.urlencode(payload)
response = requests.request("POST", url, data=post_data, headers=headers)
json=json.loads(response.text)
msg=json['msg']
if len(msg)>0:
return msg[0]
else:
return "<html></html>"
def inputPage(token,page):
msg=getMsg(token,page)
global Num
soup=BeautifulSoup(msg,'html.parser')
for noscript in soup.find_all('noscript'):
for img in noscript.find_all('img'):
if img['data-original']=="":
continue
print img['data-original']
req = urllib2.urlopen(img['data-original']) #src
content = req.read()
mutex.acquire()
f=open("./test/"+str(Num)+'.jpg','a+')
f.write(content)
mutex.release()
print Num
Num = Num + 1
f.close()
# print '部分下载完成'
class myThread(threading.Thread):
def __init__(self,token,star,end):
threading.Thread.__init__(self)
self.token=token
self.star=star
self.end=end
def run(self):
while self.star<self.end:
inputPage(self.token,self.star)
self.star=self.star+1
print str(self.star)+'页面下载完成'
token=23252018
thread1=myThread(token,0,30)
thread2=myThread(token,31,50)
thread3=myThread(token,51,60)
thread1.start()
thread2.start()
thread3.start()

阅读全文

linux 系统通过apt-get安装配置php5+mysql+apache

安装上mysql5

sudo apt-get install mysql-server

阅读全文