在linux下写一只优雅的爬虫---优雅的获取沈航所有学生的个人信息
一:ubuntu下安装python集成环境pycharm以及免费激活
安装
首先去下载最新的pycharm 2016.2.3,进行安装。可以直接在官网下载。选择自己所对应的版本

PyCharm 的激活方式:
1,推荐购买正版。
2,可以选择试用,免费试用30天。
3,网上找激活码:
(下面的激活码来自蓝宇激活,现在激活有效期到2017年2月)
user name: EMBRACE
key:
14203-12042010
0000107Iq75C621P7X1SFnpJDivKnX
6zcwYOYaGK3euO3ehd1MiTT"2!Jny8
bff9VcTSJk7sRDLqKRVz1XGKbMqw3G、
然后傻瓜式默认下一步--下一步:
在ubuntu下添加快捷式命令如下图

然后命令行打开:如下图

软件打开后如下图:

安装一些必要的第三方库:



安装完库后,(建议使用pip进行安装) ,然后使用姚老板爬虫系统进行暴力撞库,匹配学生学号,然后正则匹配学生个人信息,抓取信息到本地文件夹进行保存,等待抓取者二次数据处理以及利用(时间有点久,抓取一个年级基本需要1个半小时)

抓取后的结果如下:

为了本人的生命安全以及学校的数据安全(本次爬虫均为技术分享,不涉及商业利益)下面以我的个人信息为例(01代表计算机学院)

年级的学号就不一一展示了,只展示一下我的就行了!

-------------------------------------我是分割线---------------------------------------------------
二:python求解最大子数组算法(分治策略)
使用分治策略,将数组划分为两个规模尽量相等的子数组。也就是找到数组的中央位置mid。然后考虑求解A[low..mid],A[mid+1,high]。
最大子数组必然为下列三种情况之一:
1.位于A[low..mid],完全位于左数组
2.位于A[mid+1..high],完全位于右数组
3.位于A[i..mid..j],即跨越了中点,且 low<=i<=mid<=j<=high
话不多说,直接上图

代码如下:
# -*- coding:utf8 -*-
def max_subArray_inMid(ary,low,mid,high):
max_sum = -100000
left_index=right_index = mid
sum = 0 i = mid
while low<=i:
sum+=ary[i]
if sum > max_sum:
max_sum = sum
left_index = i
i-=1 i = mid + 1
sum = max_sum
while i <= high:
sum+=ary[i]
if sum > max_sum:
max_sum = sum
right_index = i
i+=1 return (max_sum,left_index,right_index) #没有跨越中点的最大数组
def max_subArray(ary,low,high):
if(low == high):
return (ary[low],low,high) mid = int((low+high)/2)
(left_max,left_left,left_right) = max_subArray(ary,low,mid)
(right_max,right_left,right_right) = max_subArray(ary,mid+1,high) (mid_max,mid_left,mid_right) = max_subArray_inMid(ary,low,mid,high)
if left_max > right_max and left_max > mid_max:
return (left_max,left_left,left_right)
elif right_max > left_max and right_max > mid_max:
return (right_max,right_left,right_right)
else:
return(mid_max,mid_left,mid_right) ary = [13,-3,-25,20,-3,-16,-23,18,20,-7,12,-5,-22,15,-4,7]
print(max_subArray(ary,0,len(ary)-1))
本代码在coding.net地址为:https://coding.net/u/woshicq2012/p/python/git/blob/master/zAdzszh.txt
在linux下写一只优雅的爬虫---优雅的获取沈航所有学生的个人信息的更多相关文章
- linux下通过iptables只允许指定ip地址访问指定端口的设置方法
这篇文章主要介绍了linux下通过iptables只允许指定ip地址访问指定端口的设置方法,需要的朋友可以参考下. 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的 ...
- 如何在Linux下写无线网卡的驱动【转】
转自:http://www.crifan.com/files/doc/docbook/linux_wireless/release/html/linux_wireless.html 版本:v0.3 H ...
- 在Linux下写一个简单的驱动程序
本文首先描述了一个可以实际测试运行的驱动实例,然后由此去讨论Linux下驱动模板的要素,以及Linux上应用程序到驱动的执行过程.相信这样由浅入深.由具体实例到抽象理论的描述更容易初学者入手Linux ...
- 怎样在Windows和Linux下写相同的代码
目前,Linux在国内受到了越来越多的业内人士和用户的青睐.相信在不久的将来,在国内为Linux开发 的应用软件将会有很大的增加(这不,金山正在招兵买马移植WPS呢).由于未来将会是Windows和L ...
- 【转】在Linux下写一个简单的驱动程序
转自:https://www.cnblogs.com/amanlikethis/p/4914510.html 本文首先描述了一个可以实际测试运行的驱动实例,然后由此去讨论Linux下驱动模板的要素,以 ...
- 在Linux下写一个线程池以及线程池的一些用法和注意点
-->线程池介绍(大部分来自网络) 在这个部分,详细的介绍一下线程池的作用以及它的技术背景以及他提供的一些服务等.大部分内容来自我日常生活中在网络中学习到的一些概念性的东西. -->代码 ...
- G++ 4.4.7 无法编译模板程序,Vs可以,和解?智者尾部留言,本人第一次使用vs pro,通常并且习惯在linux下写些小东西,虽然程序简单;
vs 模板编译运行Ok \ linux g++ 4.4.7编译模板测试程序,报无法定义 template <typename or class 中的 AnyType> 类型的数据 Exam ...
- linux下写tomcat启动,重启的脚本
启动: #bash/bin cd /finance/ LANG="en_US.UTF-8" export LANG /finance/tomcat8-finance/bin/cat ...
- linux下写脚本时-gt是什么意思
-eq 等于-ne 不等于-gt 大于-ge 大于等于-lt 小于-le 小于等于
随机推荐
- 其他信息: 未找到源,不过,未能搜索部分或所有事件日志。 若要创建源,您需要用于读取所有事件日志的权限以确保新的源名称是唯一的。 不可访问的日志: Security。
其他信息: 未找到源,不过,未能搜索部分或所有事件日志. 若要创建源,您需要用于读取所有事件日志的权限以确保新的源名称是唯一的. 不可访问的日志: Security. System.Diagnos ...
- 如何给Visual Studio 2015安装XNA4.0
从这个地址下载安装包 https://mxa.codeplex.com/releases/view/618279 按照说明步骤依次安装 DirectX XNA Framework 4.0 Redist ...
- 游戏AI框架
- ubuntu12.04+Elasticsearch2.3.3伪分布式配置,集群状态分片调整
目录 [TOC] 1.什么是Elashticsearch 1.1 Elashticsearch介绍 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.能够快速搜索数 ...
- Oracle常用的性能诊断语句
--1.阻塞及等待事件信息查询 -- 查询所有会话的状态.等待类型及当前正在执行的SQL脚本 select se.SID, se.SERIAL#, se.Status, se.Event, se.BL ...
- Tomcat启动脚本
记录一个比较好的tomcat启动脚本,截取<OneinStack>,修改如下两个参数即可用. 使用之前修改下面2个参数: #Location of JAVA_HOME (bin files ...
- VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径
原文链接:http://www.cnblogs.com/lidabo/archive/2012/05/29/2524170.html 说明 $(RemoteMachine) 设置为“调试”属性页上“远 ...
- git如何设置账号密码
查看已设配置 git config --list 修改GIT全局用户名 git config --global user.name [username] 修改GIT全局邮箱 git config -- ...
- Scss开发临时学习过程
SCSS语法: 假设变量申明带有!default,那么如果在此申明之前没有这个变量的申明,则用这个值,反之如果之前有申明,则用申明的值. ‘...’传递多个参数: @mixin box-shadow( ...
- System.Data.OleDb.OleDbException: 未指定的错误的解决方法
异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误 这个错误是access数据库特有的错误,当access频繁读取或操作过多的时候就会发生这个错误,微软官 ...