自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FreeSpider

Life is short,keep it meaningful!

  • 博客(32)
  • 收藏
  • 关注

转载 python gc模块

gc模块提供一个接口给开发者设置垃圾回收的选项。采用引用计数的方法管理内存的一个缺陷是循环引用的问题,而gc模块的一个主要功能就是解决循环引用的问题常用函数:1.gc.set_debug(flags)设置gc的debug日志,一般设置为gc.DEBUG_LEAK2.gc.collect([generation])显式进行垃圾回收,可以输入参数,0代表只检查第一代的对象,1代表检查...

2018-08-30 22:39:37 765

原创 Scrapyd 安装与配置

本文以ubuntu16.04为基础进行安装。1、使用命令安装scrapyd:sudo pip3 install scrapyd2、配置 执行如下命令创建配置文件:sudo mkdir /etc/scrapydsudo vim /etc/scrapyd/scrapyd.conf然后到如下网址将配置文件内容复制进去,保存即可:https://scrapyd.readth...

2018-08-29 18:17:12 2180

转载 Mysql数据库存储原理

Mysql储存过程是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命令,需要使用的时候拿出来用就可以了。想要快速的了解Mysql储存过程吗,就一同看一下下文的“Mysql储存过程-原理、语法、函数详细说明”吧!一、Mysql储存过程简介: 储存过程是一个可编程的...

2018-08-29 10:47:10 10727 1

转载 死锁产生的原因及四个必要条件

一. 什么是死锁? 如果一个进程集合里面的每个进程都在等待这个集合中的其他一个进程(包括自身)才能继续往下执行,若无外力他们将无法推进,这种情况就是死锁,处于死锁状态的进程称为死锁进程二. 死锁产生的原因?1.因竞争资源发生死锁 现象:系统中供多个进程共享的资源的数目不足以满足全部进程的需要时,就会引起对诸资源的竞争而发生死锁现象(1)可剥夺资源和不可剥夺资源:可剥夺资源是指某进...

2018-08-28 23:24:01 344

原创 Mac中-bash: ipython: command not found

如果已经使用pip install ipython安装了ipython,而且还是出现了如下错误:-bash: ipython: command not found那么我们使用;python -m IPython --version来查看ipython版本,如果看到版本信息,那么就可以使用python -m IPython 命令来启动ipython如果要使用ipython命...

2018-08-26 14:54:04 4360

转载 MySQL分页方法总结

这篇文章主要介绍了8种MySQL分页方法总结,小编现在才知道,MySQL分页竟然有8种实现方法,本文就一一讲解了这些方法,需要的朋友可以参考下MySQL的分页似乎一直是个问题,有什么优化方法吗?网上看到网上推荐了一些分页方法,但似乎不太可行,你能点评一下吗?方法1: 直接使用数据库提供的SQL语句—语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT...

2018-08-24 19:28:28 392

原创 获得App的包名和启动页Activity

首先你要在pc端配置好android SDK 才能使用adb命令1.获取哪个app包名,就打开哪个app2.在dos窗口下输入:(获取包名)adb shell "dumpsys window | grep mCurrentFocus" 比如打开微信,终端执行以上命令,终端显示如下: mCurrentFocus=Window{74f771a u0 net.csdn.csdnp...

2018-08-23 19:31:46 765

原创 爬虫随笔 六

验证码的识别url不变,验证码不变请求验证码的地址,获得相应,识别url不变,验证码会变思路:对方服务器返回验证码的时候,会和每个用户的信息和验证码进行一个对应,之后,在用户发送post请求的时候,会对比post请求中法的验证码和当前用户真正的存储在服务器端的验证码是否相同1.实例化session2.使用seesion请求登录页面,获取验证码的地址3.使用session请求验...

2018-08-20 22:22:44 173

原创 爬虫随笔 五

xpath的包含//div[contains(@class,'i')]实现爬虫的套路准备url准备start_urlurl地址规律不明显,总数不确定通过代码提取下一页的url xpath寻找url地址,部分参数在当前的响应中(比如,当前页码数和总的页码数在当前的响应中)准备url_list页码总数明确url地址规律明显发送请求,获取响应添加随机的Use...

2018-08-20 22:18:25 267

原创 爬虫随笔 四

正则使用的注意点re.findall("a(.*?)b","str"),能够返回括号中的内容,括号前后的内容起到定位和过滤的效果原始字符串r,待匹配字符串中有反斜杠的时候,使用r能够忽视反斜杠带来的转义的效果点号默认情况匹配不到\n\s能够匹配空白字符,不仅仅包含空格,还有\t|\r\nxpath学习重点使用xpath helper或者是chrome中的copy xpa...

2018-08-20 22:16:15 222

原创 爬虫随笔 三

寻找登录的post地址在form表单中寻找action对应的url地址post的数据是input标签中name的值作为键,真正的用户名密码作为值的字典,post的url地址就是action对应的url地址抓包,寻找登录的url地址勾选perserve log按钮,防止页面跳转找不到url寻找post数据,确定参数参数不会变,直接用,比如密码不是动态加密的时候参数会变 参数在...

2018-08-19 23:17:21 153

原创 爬虫随笔 二

判断请求否是成功assert response.status_code==200url编码https://www.baidu.com/s?wd=%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2字符串格式化的另一种方式"我是{}个爬虫".format("一")使用代理ip准备一堆的ip地址,组成ip池,随机选择一个ip来时用...

2018-08-19 23:13:32 319

原创 爬虫随笔 一

爬虫的概念爬虫是模拟浏览器发送请求,获取响应爬虫的分类通用爬虫聚焦爬虫爬虫的流程url—>发送请求,获取响应—>提取数据—>保存发送请求,获取响应—>提取url通用搜索引擎的局限性通用搜索引擎所返回的网页里90%的内容无用。图片、音频、视频多媒体的内容通用搜索引擎无能为力不同用户搜索的目的不全相同,但是返回内容相同...

2018-08-19 23:04:04 208

原创 python中yield的用法

直接看一个小例子,来强化一下yield的使用;my_list=[1,2,3]def get_list(): print(1111) for i in my_list: print(2222) yield i print(3333)for s in get_list(): print(4444) print...

2018-08-13 09:49:43 149

原创 mongodb Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :

mongodb启动报错: MongoDB shell version: 3.2.20 connecting to: test 2018-08-10T19:26:24.102+0800 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reas...

2018-08-10 19:41:21 8939 1

原创 ubuntu 安装mongodb

.1.导入软件源的公钥sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA3129272.为mongodb创建软件源list文件 ubuntu12.04echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 mu...

2018-08-10 10:44:14 200

原创 selenium报错“Element is not clickable at point”及解决方法

出现了一种反爬机制,你要点击的按钮如果不在可视范围内,就定位不到元素而保存,所以需要拉动滚动条,让元素呈现在可视范围内,才可以。 问题原因:不在视窗里,需要拉滚动条。解决办法:1、移动到页面最底部。driver.execute_script(“window.scrollTo(0, document.body.scrollHeight)”)2、移动到窗口绝对位置坐标,如下移动到...

2018-08-10 10:11:08 1171

转载 selenium_webdriver(python)控制浏览器滚动条

#coding=utf-8 from selenium import webdriver import time #访问百度 driver=webdriver.Firefox() driver.get("http://www.baidu.com") #搜索 driver.find_element_by_id("kw").send_keys("selenium") d..

2018-08-08 23:33:28 661

原创 selenium报错“element not visible”

意思是说;我们当前获取的这个元素不可见,l由于不可见,我们就没有办法进行操作,如获取或者click等一般情况下,如果你的selenium安装成功,而且元素没有选择错误,那就增加一个延时,这是由于页面还没有渲染完毕,我们要的元素还没有被渲染出来。...

2018-08-08 13:03:56 1074

原创 selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be inPATH

使用selenium时,出现如下错误:selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home这是因为...

2018-08-08 10:58:38 1418

转载 python中zip()函数

描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list...

2018-08-07 12:44:01 334

原创 python中单例模式

设计模式设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案 使用 设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性单例设计模式目的 —— 让 类 创建的对象,在系统中 只有 唯一的一个实例每一次执行 类名() 返回的对象,内存地址是相同的单例设计模式的应用场景音乐播放 对象 回收站 对象 ...

2018-08-06 20:18:04 328

转载 python中filter()函数

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。语法 filter(function, iterable)def is_odd(n): ...

2018-08-06 17:00:13 171

原创 python中lambda匿名函数

lambda函数形式: lambda argument_list: expressionlambda函数有如下特性:lambda函数是匿名的:所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字。lambda函数有输入和输出:输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值。lambda函数一般功能简单:单行...

2018-08-06 16:47:16 206

转载 python的reduce()函数

reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。例如,编写一个f函数,接收x和y,返回x和y的和:def f(x, y): return x + y...

2018-08-06 16:31:28 138

转载 python中map()函数的用法讲解

map函数的原型是map(function, iterable, …),它的返回结果是一个列表。参数function传的是一个函数名,可以是python内置的,也可以是自定义的。 参数iterable传的是一个可以迭代的对象,例如列表,元组,字符串这样的。这个函数的意思就是将function应用于iterable的每一个元素,结果以列表的形式返回。注意到没有,iterable后面还有省...

2018-08-06 16:25:56 8514

原创 import 方法

import方法导入顺序 1. Python 标准库模块 2. Python 第三方模块 3. 应用程序自定义模块import方法搜索路径In [5]: sys.pathOut[5]: ['', '/usr/bin', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_6...

2018-08-06 15:34:25 662

原创 os模块打印出目录下所有文件路径

利用os模块,打印出当前路径下的所有文件名,使用到了递归函数。import os def print_dir_constents(sPath): #列出当前路径下的所有文件夹和文件 并进行遍历 for schild in os.listdir(sPath): #拼接地址 sChildPath = os...

2018-08-06 14:55:05 2712 1

原创 完全理解 python 中的容器、迭代器、生成器

完全理解 python 中的容器、迭代器、生成器容器(container)容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的元素存储在内存中(也有一些特例,并不是所有的元素都放在内存,比如迭代器和生成器对象)在Python中,常见的容器对象有:list(列表),set(集合),di...

2018-08-06 11:19:30 2590 2

原创 python3 爬虫 爬取智联招聘岗位信息

这套程序基于python3 ,使用requests和re正则表达式,只需要将程序保存为.py文件后,更改程序中文件存储路径,即可将抓取到的数据保存到指定路径的Excel文件中。程序在终端中启动,启动命令:#python3 文件名.py 关键字 城市python3 zhilian.py python 杭州代码如下:# coding:utf-8import requestsimpo...

2018-08-06 00:20:43 2786 8

转载 正向代理和反向代理的区别

一个通俗的解释 代理,字面意义上来说,他就是相当于一个中间人这么个概念。带到项目中也一样,那么来这样一个比喻。用户(客户端) 代理(正,反) 提供者(服务端)。正向代理把整个流程比如成去饭店吃饭,我们也就是用户(客户端)去饭店吃饭(发送一个请求),你知道你要吃的是鱼香肉丝(请求),可是你不能自己做,那么就需要让大厨(服务端)给你做 ,可是去了饭店,大厨是在后台的,你也不能直接去...

2018-08-02 17:31:36 113

原创 linux中alias命令

Linux alias命令用于设置指令的别名。用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。如果你想永久保存你设置的别名,可以将命令设置保存在/etc/bash.bashrc文件中,这样每次开机都可以使用这个别名了。设置别名:alias run=python3这样就可以设置一个别名代替python3了,那...

2018-08-01 23:22:43 3471

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除