0%

爬取代理ip

2018/2/4 20:00:59

国内高匿代理IP 为我们的代理ip来源,用以下代码获取页面上的代理ip。

#-*-coding:utf-8 -*-
import urllib2
import urllib
import re

def get_ips(url):
    header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0'}
    req = urllib2.Request(url=url, headers=header)
    r = urllib2.urlopen(req)
    the_page = r.read()
    ipadress = re.findall('(?<=<td>)\d+.\d+.\d+.\d+(?=</td>)', the_page)
    port = re.findall('(?<=<td>)\d+(?=</td>)', the_page)
    for i in range(len(ipadress)):
        ipadress[i] += ":" + port[i]
    print ipadress
    f = open("ipse.txt", "a+")
    for ip in ipadress:
        f.write(ip)
        f.write("\r\n")
    f.close()

f = open("ipse.txt", "w+")
f.write("")
f.close()
# get_ips("http://www.ip181.com/")
for ad in range(1,4000):    #从第一页爬到4000页,4000为你需要爬的页数
    url="http://www.xicidaili.com/nn/"+str(ad)
    print url
    get_ips(url)
注:此处可以使用多线程,但是需要控制线程数。User-Agent头必须要加,否则获取不了页面源码。爬取的ip地址,不一定可以使用。需要我们自行过滤验证。
验证方法:用代理取访问 http://ip.chinaz.com/getip.aspx 会直接显示访问的ip,以及ip地址归属。获取成功ip及归属的代理ip即为可用ip。

python -m SimpleHTTPServer 8080

不需要安装任何库,它是python内置支持的,将当前路径作为web服务器的根目录,仅这一行命令,即搭建了一个临时的web服务器。 在Linux中如果需要后台支持,在命令后面加 &即可后台运行。需要关闭终端后运行在命令开头加nohup

pandas字符串提取、操作

1. 新建一个一维数组

import numpy as np
import pandas as pd
s=pd.Series(list('ABCDEF'))
s

创建一维数组

2. 转化为小写字母

s.str.lower()

转化为小写字母

3. 转化为大写字母

s.str.upper()

转化为大写字母

4. 输出每一个长度

s.str.len()

元素长度

5. 按照空格分割元素

s.str.split(" ")

按照空格分割元素

6. 修改元素

s.str.replace("A","B")  #将A替换为B

修改元素

提取字符串

1. 新建一个一维数组

s2=pd.Series(["a1","a2","a3","a4"])
s2

新建数组

2. 利用正则分离提取字符串信息

s2.str.extract("[ab](\d)")

正则提取字符串

需要提取的字符加“()”

3. 利用正则表达式判断字符串是否存在

3.1 先新生成一个一维数组
s3=pd.Series(['a','b','c','d'])
s3

3.1新生成的数组

3.2 判断是否包含
pattern=r"[a-z]"
s3.str.contains(pattern)

判断是否包含

3.3 判断元素是否匹配
s3.str.match('a')

判断元素是否匹配 2018/1/22 18:45:45

Linux tar命令

1. tar命令的解压

tar -zxvf someting.tar.gz  //解压tar.gz(常用)
tar -xjvf something.tar.bz2   //解压.tar.bz2文件
tar -xvf someting.tar  //解压tar压缩包

2. 压缩文件

tar -cvf something.tar.gz /path

附:

tar的参数解释

以下参数操作时只能使用其中的一个
-c 建立压缩档案
-x 解压
-t 查看内容
-r 向压缩归档文件末尾追加文件
可以在单次tar命令操作中加入的参数
-z 表示被gzip压缩
-j 表示被bz2压缩
-v 显示所有过程
-O 将文件解压到标准输出
备注:tar文件是未压缩的文件,与tar.gz大小差距明显。tar文件只是把所有文件集中在了一个文件里,这个文件时没有进行压缩过。

Git学习记录

2018/2/1 18:54:58

开始使用

git add file.txt         #将file.txt添加进暂存区(stage)
git commit -m "备注"
git status               #工作区状态
git diff                 #是工作区(work dict)和暂存区(stage)的比较
git diff --cached        #是暂存区(stage)和分支(master)的比较
git diff HEAD -- file    #查看工作区和版本库里面最新版本的区别

下图来自廖雪峰的网站 git版本库

查看修改记录

git log

git log

git reflog  #当前工作区修改记录

对new.md的修改过程

恢复到某一次commit状态

git reset --hard HEAD^

HEAD代表当前指针所指状态,^表示:当前状态的上一次状态,如果数量过多,可以使用git reset --hard HEAD~100

撤销修改

git checkout --file

1. 还没有被放到暂存区,撤销修改就回到和版本库一模一样的状态 2. 已经添加到暂存区后,又作了修改,撤销修改就回到添加到暂存区后的状态 - git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

删除文件

git rm file
git commit -m "remove file"

- 文件就从版本库中被删除了

远程仓库

  1. 生成自己的ssh密钥 ssh-keygen -t rsa -C “my-email@outlook.com
  2. 注册Gitub账号,添加ssh密钥(id_rsa.pub的内容)

未完待续。。