综述本系列文档用于对Python爬虫技术的学习进行记录总结。Python版本是3.7.4urllib库介绍它是Python内置的HTTP请求库,也就是说我们不需要额外安装即可使用,它包含四个模块(主要对前三个模块进行学习):request:它是最基本的HTTP请求模块,我们可以用它来模拟发送一请求,就像在浏览器里输入网址然后敲击回车一样,只需要给库方法传入URL还有额外的参数,就可以模拟实现这个过程了。error:异常处理模块,如果出现请求错误,我们可以捕
系统 2019-09-27 17:54:27 1703
给类或实例绑定其他方法(函数),需要注意问题:(1)定义方法(函数)时,要加self,如:defset_age(self,age):self.age=age(2)实例绑定方法与类绑定方法是不一样的,实例绑定方法时是要借助函数的,类绑定方法时可以直接赋值的,如:classStudet(object):def__init__(self,name):self.name=name实例绑定方法:s1=Studet('Boo')fromtypesimportMetho
系统 2019-09-27 17:54:09 1703
Python面向对象编程——基本语法一、类的语法上一节最后的代码其实有问题,属性名字和年龄都写死了,想传名字传不进去。classPerson(object):def__init__(self,name,age):self.name=nameself.age=agep=Person("Alex",22)print(p.name,p.age)为什么有__init__?为什么有self?此时的你一脸蒙逼,相信不画个图,你的智商是理解不了的!画图之前,你先注释掉这
系统 2019-09-27 17:54:00 1703
Python面向对象编程——类与对象一、类与对象的概念类即类别、种类,是面向对象设计最重要的概念,从一小节我们得知对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体。那么问题来了,先有的一个个具体存在的对象(比如一个具体存在的人),还是先有的人类这个概念,这个问题需要分两种情况去看。在现实世界中:肯定是先有对象,再有类。世界上肯定是先出现各种各样的实际存在的物体,然后随着人类文明的发展,人类站在不同的角度总结出了不同的种类,比如人类、动物
系统 2019-09-27 17:53:58 1703
本函数可以使用参数real+imag*j方式创建一个复数。也可以转换一个字符串的数字为复数;或者转换一个数字为复数。如果第一个参数是字符串,第二个参数不用填写,会解释这个字符串且返回复数;不过,第二个参数不能输入字符串方式,否则会出错。real和imag参数可以输入数字,如果imag参数没有输入,默认它就是零值,这个函数就相当于int()或float()的功能。如果real和imag参数都输入零,这个函数就返回0j。有了这个函数,就可以很方便地把一个列表转
系统 2019-09-27 17:53:57 1703
本文实例讲述了python实现对象列表根据某个属性排序的方法。分享给大家供大家参考,具体如下:对于一个已有的pythonlist,里面的内容是一些对象,这些对象有一些相同的属性值,在一些特定的情况下,需要自己选择特定的排序,也就是根据某一个具体的属性来排序,在网上找了下资料,一般来说有两种方法,但从根本上来说,还是调用了list.sort方法来实现。下面是简单的测试代码片段:#coding:utf-8classPerson:def__init__(self
系统 2019-09-27 17:53:53 1703
在初步了解Python多进程之后,我们可以继续探索multiprocessing包中更加高级的工具。这些工具可以让我们更加便利地实现多进程。进程池进程池(ProcessPool)可以创建多个进程。这些进程就像是随时待命的士兵,准备执行任务(程序)。一个进程池中可以容纳多个待命的士兵。“三个进程的进程池”比如下面的程序:复制代码代码如下:importmultiprocessingasmuldeff(x):returnx**2pool=mul.Pool(5)r
系统 2019-09-27 17:53:52 1703
和之前C++执行LinuxBash命令的方法一样,Python依然支持system调用和popen()函数来执行linuxbash命令。方法一:system调用#仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息importosos.system('ls')方法二:popen()函数importosos.popen('ls').readlines()#这个返回值是一个list方法三:使用模块subprocessimportsubprocesssu
系统 2019-09-27 17:53:51 1703
一.问题描述Givenanintegerarraynums,findthecontiguoussubarray(containingatleastonenumber)whichhasthelargestsumandreturnitssum.Example:Input:[-2,1,-3,4,-1,2,1,-5,4],Output:6Explanation:[4,-1,2,1]hasthelargestsum=6.Followup:Ifyouhavefigur
系统 2019-09-27 17:53:31 1703
[TOC]这里主要是算法的介绍以及一些判断算法好坏的标准和方式引入如果a+b+c=1000,且a^2+b^2=c^2,如何求出所有a,b,c可能的组合?第一次尝试:importtimeprint("开始")start_time=time.time()forainrange(1001):forbinrange(1001):forcinrange(1001):ifa+b+c==1000anda**2+b**2==c**2:print("a,b,c:%d,%d,
系统 2019-09-27 17:53:21 1703
在C++11和C#中都有匿名函数的存在。下面看看在python中匿名函数的使用。1.lambda只是一个表达式,函数体比def简单很多。2.lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。3.lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。例1.定义一个lambda表达式,求三个数的和#-*-coding:UTF-8-*-f=lambdax,y,z:x+y+zprintf(1,2
系统 2019-09-27 17:53:21 1703
解决Python抓HTML结构存入数据库转义报错问题首先需求是这样的,抓一些资讯(带有标准的html结构入库),然后研究了半天,各种手动转义,尝试了很多种方法都没有效的解决,下面是有效的最后转义的方案,下面这种入库是没有转义符号的,和原html是一样的,如果前台需要带转义符号需要手动替换一下newSql=db.escape(param)sql='INSERTINTOzhixun(htmls)VALUES({})'.format(newSql)数据库比较懒了
系统 2019-09-27 17:53:17 1703
Python面向对象编程——异常处理一、什么是异常异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下:而错误分成两种1、语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正)#语法错误示范一if#语法错误示范二deftest:pass#语法错误示范三classFoopass#语法错误示范四print(haha)2、
系统 2019-09-27 17:53:13 1703
案例:爬取使用搜狗根据指定词条搜索到的页面数据(例如爬取词条为‘周杰伦'的页面数据)importurllib.request#1.指定urlurl='https://www.sogou.com/web?query=周杰伦''''2.发起请求:使用urlopen函数对指定的url发起请求,该函数返回一个响应对象,urlopen代表打开url'''response=urllib.request.urlopen(url=url)#3.获取响应对象中的页面数据:r
系统 2019-09-27 17:53:11 1703
早听说用python做网络爬虫非常方便,正好这几天单位也有这样的需求,需要登陆XX网站下载部分文档,于是自己亲身试验了一番,效果还不错。本例所登录的某网站需要提供用户名,密码和验证码,在此使用了python的urllib2直接登录网站并处理网站的Cookie。Cookie的工作原理:Cookie由服务端生成,然后发送给浏览器,浏览器会将Cookie保存在某个目录下的文本文件中。在下次请求同一网站时,会发送该Cookie给服务器,这样服务器就知道该用户是否合
系统 2019-09-27 17:53:11 1703