6 another静静

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 7w+

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

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

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

2017-10-31 16:51:58

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

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

2017-10-31 11:11:44

Python 爬虫(一)综述

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

2017-10-30 15:38:48

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

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

2017-09-06 10:43:23

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

python 正则表达式

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

2017-08-08 17:44:07

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

Python 文件和目录操作

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

2017-08-07 11:52:24

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

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

2017-08-04 11:49:31

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

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

2017-08-03 17:46:17

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

python 函数返回多个值

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

2017-08-01 16:48:53

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

关于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

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

python中的dict存储

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

2017-07-31 18:44:35

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

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

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

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!