在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 小于等于
随机推荐
- Python>>>使用Python和Pygame创建画板
下面是画板截图 # -*- coding: utf-8 -*- import pygame from pygame.locals import * import math class Brush: d ...
- 推荐的Android ORM框架
1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM.支持JDBC连接,Spring以及Android平台.语法中广泛使用了注解(Annotation ...
- python3验证码机器学习
python3验证码机器学习 文档结构为 -- iconset -- ... -- jpg -- captcha.gif -- py -- crack.py 需要的库 pip3 install pil ...
- 转载:scala中:: , +:, :+, :::, ++的区别
原文链接:https://segmentfault.com/a/1190000005083578 初学Scala的人都会被Seq的各种操作符所confuse.下面简单列举一下各个Seq操作符的区别. ...
- javascript 利用匿名函数对象给你异步回调方法传参数
先来创建一个匿名函数对象: /*** * 匿名函数 */ var callChangeBtn=new function(bugBtn){ this.chage=function(json){ bugB ...
- 自己动手制作CSharp编译器
在你喜欢的位置(如F盘根目录)新建一个文件夹,并命名为“CSharp开发环境”.找到或下载C#编译器组件(csc.exe和cscui.exe),并放在先前建立的文件夹中.该组件的一般位置在C盘的.NE ...
- SQLSERVER 复制同一张表的递归结构
CREATE PROCEDURE [dbo].[Pro_Copy] @OLDJiFenSeriesId VARCHAR(), @NEWJiFenSeriesId VARCHAR() AS BEGIN ...
- 3、SSH高级服务
1.ssh服务生成新的公钥和私钥[root@rhel6_80 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in ...
- 中文字符串转换为十六进制Unicode编码字符串
package my.unicode; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Uni ...
- fsn文件解析(C#)
public class FsnBizNet { private static int count; public static int parseInt( ...