基础知识
冻梨不是梨
公众号:壹家大数据
展开
-
ipv6 环境下完美使用scp
星期日本该是一个可以躺在床上休息的日子,然而一通电话,就把我叫了起来。发现之前修改问题的时候引入了一个问题,ipv6环境下,scp命令失败:network unreachable。通常情况下,在ipv4的环境下,我们使用scp的时候,都是按照如下的格式来写的:scp xxx.file root@192.168.1.1:/home但是在ipv6的环境下,如果在按照上面的格式来写的话,就...原创 2020-03-22 15:18:49 · 3810 阅读 · 0 评论 -
IPV6详解
IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。目前IP协议的版本号是4(简称为IPv4),它的下一个版本就是IPv6。我们使用的第二代互联网IPv4技...原创 2019-11-30 23:02:14 · 1195 阅读 · 0 评论 -
爬虫基础
基本概念:1、通用爬虫:可理解为搜索引擎,例如百度、google等,针对的是互联网上所有的资源2、聚焦爬虫:可理解为爬取指定内容的爬虫3、URI:统一资源标识符,即标明网络资源的字符串4、URL:统一资源定位符,即网络资源的地址,包括协议、服务器名称或IP、文件资源的路径三部分组成5、DNS服务器:用于解析网址,返回服务器IP地址的服务器。 爬虫所依赖的应用层的协议:HT...原创 2018-08-13 08:46:39 · 218 阅读 · 0 评论 -
cookies 的各个参数
由于第一次研究cookie,在分析校内的cookie的时候,遇到了一些__utma utmz的Name,参数的内容完全分析不懂,经多方求教,终于知道了原来那些代码竟然是Google的免费网站统计系统产生的信息(垃圾代码害得我浪费了整整一天),Down下来了它的生成文件:Urchin.js 几千行代码看的我脑袋发木,最后百度搜索寻求不到结果,求助于Google,才得到了如下的信息: Th...转载 2018-08-03 08:48:29 · 916 阅读 · 0 评论 -
python 多线程文件操作
使用python 将在csv文件中的一百万条网址,写入mongo数据库中,这里使用多线程进行操作。直接贴上代码,如下:import osimport threading #导入进程import csvimport timefrom Mongo_cache import MongoCache import win32com.clientimport winsound...原创 2018-08-02 16:20:34 · 4191 阅读 · 0 评论 -
Python中 sys.argv[]的用法简明解释
Python中 sys.argv[]的用法简明解释 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果,也在网上查了许多,但发现这个问题的比较详细的解释只有一个版本,大部分都是转裁和复制的。给的都是简明python教程上那个一长串代码的例子,说看了就明白了,可我看得晕头转向的还是没真正明白...转载 2018-07-31 11:31:20 · 812 阅读 · 0 评论 -
git 使用记录
对于git的提交一直很小心翼翼,感觉一不小心就会踩到莫名的坑。 这不, 某天commit 就遇到了On branch master nothing to commit (working directory clean) 一查意思。你的分支很干净? 干净?excuse me? 然后git push origin master一下,漫长等待了弹出了fail:#...转载 2018-08-04 19:50:14 · 189 阅读 · 0 评论 -
git 提交文件
在使用git add提交多个文件的方式:git add . 后面加一个“.”,匹配所有的文件总结下,提交多个文件时,git add后可以有如下参数以及参数的解释:git add . 提交被修改的和新建的文件,但不包括被删除的文件 git add -u --u...原创 2018-08-04 17:48:08 · 625 阅读 · 0 评论 -
python生成随机字符串
import randomimport stringran_str = ''.join(random.sample(string.ascii_letters + string.digits, 11))print ran_str原创 2018-07-30 22:42:02 · 578 阅读 · 0 评论 -
python 回调函数
在之前学爬虫的时候,就遇到了这个问题,当时没弄明白。现在明白了,特来记录。首先看一个小例子,后面会附上知乎一位大神的解说。def a(i): """" 回调函数1 """ print("回调函数1") return i**2def b(i): """ 回调函数2 """ print("回调函数2") re...原创 2018-08-18 18:02:00 · 3540 阅读 · 2 评论 -
json模块 dunms,loads, dum,load 函数介绍
1、json.dumps() json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} jsObj = json.dumps(n...转载 2018-08-30 22:15:30 · 511 阅读 · 0 评论 -
从 javascript 标签中获取数据
之前的一篇博客,介绍了使用js2xml 模块来解决javascript标签中的数据问题,但实际操作后发现,使用js2xml解析js得到的标签书,太过于反人类了。标签树是得到了,但获取数据就难了很多,那样的标签毕竟不是适合阅读的。今天又查看了下上篇文章中js的包含的数据结构,不就是dict或者json嘛。顿时感觉发现了新大陆。 ...原创 2018-08-30 23:35:02 · 665 阅读 · 0 评论 -
robots 协议介绍
robots.txt怎么写 1、允许所有搜索引擎访问 User-agent: * Disallow: 或者 User-agent: * Allow: / 在这里大家要注意下,可以最直接的建一个空文件 “robots.txt”然后放到网站的根目录。 2、禁止所有搜索引擎访问 User-agent: * Disallow: / 或者 User-agent...原创 2018-08-29 10:37:29 · 2439 阅读 · 0 评论 -
python 多个变量同时赋值
t = 1t, a = 3, t+1如上,正确的输出应该是怎么样的呢?是t=3, a=4,还是其他的呢?现在我们来运行一下>>> t=1 >>> t, a = 3, t+1 >>> a 2>>> t 3>>&g原创 2018-09-10 17:48:37 · 1897 阅读 · 0 评论 -
生成制定长度的随机密码
生成制定长度的随机密码使用语言python3.6使用模块 random, string 要求:生成制定长度的随机密码,必须包含大小写字母,数字import stringimport randomllen = int(input("输入密码长度>>>"))def pass_create(lenth): cha = string.ascii_le...原创 2018-09-10 22:25:56 · 320 阅读 · 0 评论 -
selenium 获取id
使用selenium获取id的值有两种方法,分别是,以标签a为例,分别是a.id获取到的id是一串字符串,并不是id的值a.get_attribute('id')获取到的id是id本身的值...原创 2018-09-20 18:18:39 · 3894 阅读 · 0 评论 -
一些适合刷算法的网站
leetcode http://leetcode.com/ careerup http://www.careercup.com/ http://hawstein.com/posts/ctci-solutions-contents.html glassdoor http://www.glassdoor.com/index.htm topcoder...转载 2018-12-05 13:23:55 · 714 阅读 · 0 评论 -
java 枚举类示例介绍
首先看一个例子:package test;public enum EnumTest { STUDNT("liming", 12); String name; int age; EnumTest(String name, int age) { this.name = name; this.age = age; ...原创 2019-08-27 23:55:47 · 364 阅读 · 0 评论 -
python 列表推导式
推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:列表(list)推导式 字典(dict)推导式 集合(set)推导式 一、列表推导式1、使用[]生成list基本格式variable = [out_exp_res for out_exp...转载 2018-07-22 15:23:52 · 123 阅读 · 0 评论 -
python 成员关系:__contains__,__iter__和__getitem__
#__contains__优于__iter__优于__getitem__方法#__contains__方法应该把成员关系定义为对一个映射应用键(并且可以使用快速查找),以及用于序列的搜索class Iters: def __init__(self, value): self.data=value def __getitem__(self, i): ...转载 2018-07-22 15:12:52 · 3628 阅读 · 0 评论 -
mongodb_修改器($inc/$set/$unset/$push/$pop/upsert......)
对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高效的进行文档更新。更新修改器是中特殊的键,用来指定复杂的操作,比如增加、删除或者调整键,还可能是操作数组或者内嵌文档。1.$inc--------------------------------------------------------------------------这个修改器干什么使的呢?看...转载 2018-07-23 11:39:31 · 158 阅读 · 0 评论 -
python mongo数据库——过期自动删除
MongoDB的过期设置依赖索引(TTL-index),设置过期字段使用的索引后,插入数据时在该字段指定日期时间,经过在创建索引时指定的秒数后,该记录会被MongoDB认为已经过期,然后删除。创建索引和指定过期时间的方式类似,要注意的是过期时间的字段必须使用UTC时间,否则无法正常删除记录因此指定过期时间删除虽然也可以起作用,但是不能确定删除时间非常精确。from pymongo im...原创 2018-07-23 11:09:25 · 1070 阅读 · 0 评论 -
python — 定时爬取猫眼电影排行榜
每次程序运行都是运行一次就结束了,那么能不能定时运行呢?接下来介绍python中的定时运行模块,schedule。首先是模块的安装,推荐使用 pip 安装:pip install schedule接下来,在python的自带的IDLE中输入help('schedule'),就可以看到schedule的介绍。下面是schedule自带的例子:import scheduleimport time ...原创 2018-06-28 16:07:01 · 668 阅读 · 0 评论 -
python 多进程介绍
昨天在尝试爬取一个网站的时候,发现速度太慢,就想着使用多进程或者是多线程。原文链接:https://my.oschina.net/yangyanxing/blog/296052一、先说说Queue(队列对象)Queue是python中的标准库,可以直接import 引用,之前学习的时候有听过著名的“先吃先拉”与“后吃先吐”,其实就是这里说的队列,队列的构造的时候可以定义它的容量,别吃撑了,吃多了,...转载 2018-07-03 10:22:44 · 205 阅读 · 0 评论 -
python 中的urlparse模块
urlparse模块主要是用于解析url中的参数 对url按照一定格式进行 拆分或拼接 1.urlparse.urlparse将url分为6个部分,返回一个包含6个字符串项目的元组:协议、位置、路径、参数、查询、片段。123import urlparseurl_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt...转载 2018-07-09 20:11:52 · 606 阅读 · 0 评论 -
python __str__和__repr__
__str__和__repr__如果要把一个类的实例变成 str,就需要实现特殊方法__str__():class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): ...转载 2018-07-09 13:54:45 · 256 阅读 · 0 评论 -
Python的hasattr() getattr() setattr() 函数使用方法详解
hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号括起来 1 >>> class test(): 2 ... name="xiaohua" 3 ... def run(self): 4 ... re...转载 2018-07-09 09:26:40 · 142 阅读 · 0 评论 -
python yield 和 return 对比分析
相同点:都是返回函数执行的结果不同点:return 在返回结果后结束函数的运行,而yield 则是让函数变成一个生成器,生成器每次产生一个值(yield语句),函数被冻结,被唤醒后再产生一个值例子:求一组数的平方值return 实现:def squre(n): ls = [i*i for i in range(n)] return lsfor i in squr...原创 2018-07-08 16:54:29 · 8672 阅读 · 2 评论 -
Python合并列表,append()、extend()、+、+=
在实际应用中涉及到了列表合并的问题。在应用append()时,发现列表是以一个元素的形式追加到列表上的,最后查询后用的是extend()方法,下面是区别 1.append() 向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加,添加新的元素2.extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加,添加新的列表3.+ 直接用+号看上去与用exten...原创 2018-07-12 14:21:32 · 1090 阅读 · 0 评论 -
python3 Queue(单向队列)
python3 Queue(单向队列)创建队列import queueq = queue.Queue()empty(如果队列为空,返回True)import queueq = queue.Queue()print(q.empty())#输出:Truefull(如果队列满了,返回True)import queueq = queue.Queue(1) #指定队列大小q.put('a')...转载 2018-07-12 14:41:47 · 245 阅读 · 0 评论 -
python cookies获取和设置
python 的cookies的几种获取和设置的方法import requestsfrom urllib import requestfrom http import cookiejarfrom selenium import webdriverurl = "https://www.douban.com/"def cookie_get(): driver = web...原创 2018-08-03 17:06:47 · 5671 阅读 · 0 评论 -
高性能Python之:Queue,deque,queue对比
Python作为一门脚本语言,有着很多便捷易用的优秀特点,但他也有一个很大的缺陷,就是性能太差,这也是作为脚本语言不可避免的问题,这里我们来学习一些方法,提高Python的性能:为了大家测试方便,这里同时给了代码的图片版和文字版。queue是多线程中的使用的栈,但是Python 解释器有一个全局解释器锁(PIL),导致每个 Python 进程中最多同时运行一个线程,因此 Python 多线程程序并...转载 2018-07-14 15:47:13 · 3773 阅读 · 1 评论 -
Python __setitem__()、__getitem__()、__delitem__()
__xxxitem__:使用 [''] 的方式操作属性时被调用__setitem__:每当属性被赋值的时候都会调用该方法,因此不能再该方法内赋值 self.name = value 会死循环__getitem__:当访问不存在的属性时会调用该方法__delitem__:当删除属性时调用该方法lass A(object): def __init__(self): ...转载 2018-07-25 14:00:41 · 206 阅读 · 0 评论 -
python线程的批量创建
上篇文章介绍了python线程的基础知识和创建的方法,现在开始介线程的批量创建的方法。原创 2018-07-07 16:58:51 · 1783 阅读 · 0 评论 -
python 多线程
python 的标准库,提供了两个线程模块,分别为 _thread 和 threading 模块,_thread 为低端模块,threading为高端模块,对_thread进行了分装,大多数情况下,我们只用到 threading 模块。启动一个线程,就是把一个函数传入,并创建一个Thread实例,然后调用 start() 函数开始执行。例子如下:import threadingimport ti...原创 2018-07-07 15:34:45 · 219 阅读 · 0 评论 -
python 最大递归次数 RuntimeError: maximum recursion depth exceeded
在运行程序时,出现 RuntimeError: maximum recursion depth exceeded的报错,查资料得知,这是因为迭代的次数超过了系统的限制,只需要在迭代的起始位置,修改最大迭代次数即可,方法如下:import syssys.setrecursionlimit(10000) # set the maximum depth as 10000 设置最大次数为1000或...原创 2018-07-07 11:05:55 · 800 阅读 · 0 评论 -
Python中的生产者消费者问题
使用生产者和消费者的例子来介绍python的多线程代码如下:#生产者和消费者问题from threading import Threadfrom queue import Queueq = Queue()def producer(): global q for i in range(10, 100): q.put(i)def consumer(): ...原创 2018-07-12 23:21:21 · 249 阅读 · 0 评论 -
抓包工具Fiddler介绍
本文参考http://blog.csdn.net/ohmygirl/article/details/17846199和https://www.cnblogs.com/GreenLeaves/p/6971452.html之前一直想找一篇详细介绍fiddler的介绍文章,今天终于找到了,特来分享。1、抓包工具有很多,为什么要使用Fiddler呢?原因如下:a.Firebug虽然可以抓包,但是对于分析h...转载 2018-07-01 09:26:08 · 257 阅读 · 0 评论