自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Python爬虫(四) URLError、HTTPError异常处理

1.URLError首先解释下URLError可能产生的原因:网络无连接,即本机无法上网连接不到特定的服务器服务器不存在在代码中,我们需要用try-except语句来包围并捕获相应的异常。下面是一个例子:import urllib.requestrequest = urllib.request.Request(‘https://www.xxx.com‘) try: urllib.r

2017-11-07 14:58:36 1882

原创 Python爬虫(三)Urllib库的高级用法

1.设置Headers有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性。可以打开Chrome浏览器,调试浏览器F12,打开网络监听,尝试登陆知乎,会发现登陆之后界面都变化了,出现一个新的界面,实质上这个页面包含了许许多多的内容,这些内容也不是一次性就加载完成的,实质上是执行了好多次请求,整个网页的

2017-10-31 16:51:58 317

原创 Python爬虫(二)使用urllib来爬点东西

1、先爬一个网页下来看看吧 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是优美有序的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加JS、CSS,下面我们就来扒一个网页下来看看。# python 3import urllib.requestresponse = urllib.request.urlopen("https://baidu.com

2017-10-31 11:11:44 309

原创 Python 爬虫(一)综述

1.首先,什么是爬虫呢?爬虫(spider),可以理解为在网络上爬行的一只蜘蛛,爬虫在互联网这张网上爬来爬去地找资源,如果它遇到想要的资源,就会把它抓取下来。至于什么资源是想要的抓取的?这个由你来控制它咯。 概括来说,爬虫就是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。2.浏览网页的过程在我们浏览网页的时候,看到的东西是怎么来的呢,这个过程其实是这样的:我们输入网址之后,经过DNS服务

2017-10-30 15:38:48 388

原创 HTTP 405 错误 – 方法不被允许 (Method not allowed)

HTTP 协议定义一些方法,以指明为获取客户端(如您的浏览器或我们的 CheckUpDown 机器人)所指定的具体网址资源而需要在 Web 服务器上执行的动作。则这些方法如下:OPTIONS( 选项 ) :查找适用于一个特定网址资源的通讯选择。 在不需执行具体的涉及数据传输的动作情况下, 允许客户端来确定与资源相关的选项以及 / 或者要求, 或是一个服务器的性能。GET( 获取 ) :检索由

2017-09-06 10:43:23 6434

原创 Python StringIO和BytesIO

1、StringIO很多时候,数据读写不一定是文件,也可以在内存中读写。 StringIO顾名思义就是在内存中读写str。 要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:>>> from io import StringIO>>> f = StringIO()>>> f.write('hello')5>>> f.write(' ')1>

2017-08-30 18:23:10 499

转载 python 正则表达式

(廖雪峰Python教程学习笔记)字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否

2017-08-08 17:44:07 207

原创 Python 在当前目录以及其子目录下查找文件名包含指定字符串的文件,并打印出相对路径。

import osdef search_file(dir,sname): if sname in os.path.split(dir)[1]: #检验文件名里是否包含sname print(os.path.relpath(dir)) #打印相对路径,相对指相对于当前路径 if os.path.isfile(dir): # 如果传入的dir直接是一个文件目录

2017-08-07 15:47:38 11423

转载 Python 文件和目录操作

操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中,这一点要注意一下。查看、创建和删除目录可以这么调用:# 查看当前目录的绝对路径:>>> os.path.abspath('.')'/Users/michael'# 在某个目录下创建一个新目录,首先把新目录的完整路径表示出来:>>> os.path.join('/Users/michael', 'testdir')'/

2017-08-07 11:52:24 232 1

原创 Python常见的错误类型及其继承关系

Python所有的错误都是从BaseException类派生的。 下面是Python常见的错误类型及其继承关系:BaseException +– SystemExit +– KeyboardInterrupt +– GeneratorExit +– Exception +– StopIteration +– StopAsyncIteration

2017-08-04 11:49:31 1138

转载 Python函数参数(默认参数、可变参数、关键字参数及参数组合)

(廖雪峰Python教程学习笔记)Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。 默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑错误! 要注意定义可变参数和关键字参数的语法: *args是可变参数,args接收的是一个tuple; **kw是关键字参数,kw接收的是一个dict。 以及调用函数时如何传入可变参数和关键字参数的语法:

2017-08-03 17:46:17 955

原创 Python 匿名函数

(廖雪峰Python教程学习笔记)当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))[1, 4, 9, 16,

2017-08-01 17:51:26 282

原创 python 函数返回多个值

(廖雪峰Python教程学习笔记)函数体内部的语句在执行时,一旦执行到return,函数就执行完毕,并将结果返回。 如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。 return None可以简写为return。Python中的函数是可以返回多个值的。比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的新的坐标:import mathde

2017-08-01 16:48:53 22813

原创 Python 判断回数(例如12321、909)

回数是指从左向右读和从右向左读都是一样的数,例如12321,909。 现在用Python来实现方法一:# 判断回数def is_palindrome(n): s=str(n) for i in range((len(s)+1)//2): if s[i] != s[-(i+1)]: return False return True方法

2017-08-01 15:51:16 3056 4

原创 关于Python中的不可变对象

我们都知道,在Python中str是不变对象,而list是可变对象。 对于可变对象,比如list,对list进行操作,list内部的内容是会变化的,比如:>>> a = ['c', 'b', 'a']>>> a.sort()>>> a['a', 'b', 'c']而对于不可变对象,比如str,对str进行操作呢:>>> a = 'abc'>>> a.replace('a', 'A')'A

2017-08-01 11:46:10 438

原创 Python 用一个生成器函数实现杨辉三角

杨辉三角定义如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1现在用一个生成器函数来实现杨辉三角,把每一行看做一个list实现:def triangles(n): # 生成n阶杨辉三角 l=[1] # l记录

2017-08-01 11:39:13 827

原创 python中的dict存储

(学习廖雪峰教程的笔记)Python中的dict查找速度非常快,这是因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快

2017-07-31 18:44:35 4376 1

原创 python 变量在内存中的表示(变量赋值误区)

通过一个小例子来理解变量在计算机内存中的表示~当我们写:a = 'ABC'时,Python解释器干了两件事情:1、在内存中创建了一个'ABC'的字符串;2、在内存中创建了一个名为a的变量,并把它指向'ABC'。我们也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:a = 'ABC'b = aa = 'XYZ'print(b)最后一行打印出变

2017-07-28 16:52:36 2413

原创 pandas读取csv处理时报错:ParserError: Error tokenizing data. C error: Expected 1 fields in line 29, saw 2

csv文件默认的是以逗号为分隔符,但是中文中逗号的使用率很高,爬取中文数据室就容易造成混淆,所以使用pandas写入csv时可以设置参数 sep=’\t’ ,即以tab为分隔符写入。毕竟tab在中文习惯里用的很少嘛。 那这样在后面读取csv进行数据处理时,一定记得加上一个参数delimiter:delimiter="\t"#这样读入:df=pd.read_csv('path',delimite

2017-07-21 11:06:45 60343 7

原创 pandas读取csv文件进行处理时报错: TypeError: invalid type comparison

在Python中用pandas读取csv文件并对csv里面的数据进行处理的时候,有可能会遇到这样的错误:TypeError: invalid type comparison无效的类型比较这时可以去打印一下你的dataframe中的数据1、可能有些条目中没有数据,打印时它会显示成nan,而nan是没有办法和任何数据进行比较的,它不和任何值相等,包括他自己(因此也可以用 a != a 来判断a是否是na

2017-07-21 10:22:29 15830 3

原创 docker在windows下的安装和配置

1、docker基础介绍 很多人有一个先入为主的概念,docker是一个轻量级的容器。但,docker并不是一个容器,而是一个容器的引擎工具。 Docker包含一个服务端和客户端,服务端是一个管理着所有容器和文件系统的服务进程,客户端则是一个服务端的控制器,用来控制docker的服务端进程。 至于容器,主要指的是包含了一些特定应用程序的运行实例,既能保证当前应用的运行环境独立,也能保证容器相互

2017-07-21 10:18:08 1444

转载 Python文件读写

读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。读文件要以读文件的

2017-07-20 18:16:33 250

原创 Python写入文件时报错: 'ascii' codec can't decode byte 0xe6 in position 55: ordinal not in range(128)

在打开文件的时候加上参数encoding就好了encoding=‘utf-8’另外,write完之后记得关闭文件呐f.close()

2017-07-20 17:27:28 3215

原创 往txt文件中写入换行

先放着,回去写哈哈

2017-07-20 16:50:30 19194 2

原创 pandas常用操作

对csv:df=pd.read_csv('/workspace/7_17test/72111417',delimiter="\t")df = pd.read_csv("/workspace/7_17test/104541644", header=0,delimiter="\t",names=["order", "timestamp", "from", "to", "msg", "quote"])对d

2017-07-19 18:00:21 209

原创 python中set(集合)类型的操作

Python 的set集合类型是一个无序不重复元素集。基本功能包括关系测试和消除重复元素。集合对象还支持union(联合), intersection(交), difference(差)和sysmmetricdifference(对称差集)等数学运算,和我们初中数学学的集合的非常的相似。1、set的不重复性先看下python 集合类型的不重复性,拿来做一些去重处理非常棒,比如我们要处理一堆数据,想把

2017-07-19 15:24:04 839

原创 JavaScript实现全选、不选、反选功能

点击全选按钮,下面的列表项会被全部选择; 点击不选按钮,选项全部取消选择; 先在列表中选择几项,再点击反选按钮,之前被选择的会取消选择,之前没被选择的会变成选择状态。下面是js实现代码:<!DOCTYPE html><html><head><meta charset="utf-8"><title>hh</title><script type="text/javascript">

2017-07-16 11:19:33 913

原创 用JavaScript实现选项卡功能

类似淘宝里面的这种,点击不同的选项,下面会展示不同的内容。 下面是js代码实现:<!DOCTYPE html><html><head><meta charset="utf-8"><title>选项卡</title><style type="text/css"> #div1 .active {background: yellow;} #div1 div{width: 2

2017-07-16 11:08:45 636

原创 HTTP常见状态码

http状态码负责表示客户端http请求的返回结果,标记服务器端是否正常处理了请求,并且通知出现的错误。状态吗由3位数字和原因短语组成,比如:200 OK。数字中的第一位指定了响应类别,后两位无分类。 响应类别有以下5种:1xx:informational性息信状态码 接收的请求正在处理2xx:success成功状态码 请求正常处理完毕3xx:redire

2017-07-15 21:17:04 264

原创 pycharm上安装库(以pandas为例)

pycharm上安装库(以pandas为例)网上有些反应安装pandas库时会出现问题,提示好像是pip的原因。 这时候大概是自己的pip版本太久啦。所以最好先在cmd更新一下pip好了。在cmd输入命令:python -m pip install -U pip出现成功信息:Requirement already up-to-date 即可。之后打开pycharm 1、点击右上角 file/se

2017-07-15 15:58:58 45475 9

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