
python
文章平均质量分 77
python
万里顾—程
我变得自信有趣,
允许别人踏入我的生活;
我睡的越来越早,
开始在乎前途和未来,
我知道那个我回来了!
展开
-
Python爬虫——Scrapy框架使用实例及执行过程
Selector(选择器):Scrapy 提供的数据提取方法,Selector 基于 lxml ,支持 XPath 选择器、CSS 选择器以及正则表达式,功能全面,解析速度和准确度非常高。要访问的域名:https://gz.58.com/sou/?extract_first():提取selector列表中的第1个文本内容。scrapy项目名:scrapy_02_tc。...原创 2022-08-26 17:42:40 · 1686 阅读 · 0 评论 -
Python爬虫——Scrapy 的基本使用
parse():解析的方法,解析返回的响应、提取数据或者进一步生成要处理的请求;创建成功,项目文件如下:Scrapy 框架将整个爬虫项目分成了不同的模块,其中每个模块负责处理不同的工作,而且模块之间紧密联系。allowed_domains:允许访问的域名,如果后续请求中的域名不是这个域名或不是这个域名的子级域名,则请求会被过滤掉。name:爬虫文件的名字,必须是唯一的,用于运行爬虫和区分不同的爬虫。start_urls,初始的url地址,爬虫在启动时访问的域名。第一个参数是 python爬虫文件的名称。原创 2022-08-25 14:41:42 · 4703 阅读 · 1 评论 -
Python爬虫——Scrapy 简介和安装
Scrapy 简介Scrapy 是一个基于 Twisted实现的专业的、高效的异步处理爬虫框架,Scrapy 框架用纯Python实现。Twisted:一个采用 Python 实现的基于事件驱动的网络引擎框架,用 Twisted 来处理网络通讯可以加快我们的下载速度,不用自己去实现异步框架。Scrapy 框架用途非常广泛,可以提取网站数据、网络监测以及自动化测试等,Scrapy 也可以根据自己需求所需要的数据进行定制。原创 2022-08-22 17:25:19 · 1206 阅读 · 0 评论 -
Python爬虫——使用requests请求登录
使用代理 IP 时会隐藏了本地网络的真实 IP,让第三方 IP 代替自己去访问网站,避免真实IP被网站封杀,代理 IP 可以通过端口探测技术被识别出来。通过构建代理 IP 池,从 IP 池中随机选择一个 IP 去访问网站,而不使用固定的真实 IP,让爬虫程序更加稳定。注意:通过使用session让请求之间保持状态,而保证了下载的验证码和登录时的验证码是同一个验证码。快代理 https://free.kuaidaili.com/free/齐云代理 https://proxy.ip3366.net/free/原创 2022-08-22 15:23:36 · 1315 阅读 · 0 评论 -
Python爬虫——Requests 的Get和Post请求
方法:requests.post(),通过POST请求访问一个页面,对应于 HTTP 的 POST方法。方法:requests.get(),通过GET请求访问一个页面,对应于 HTTP 的 GET 方法。执行结果:返回json数据。原创 2022-08-19 14:27:45 · 3766 阅读 · 0 评论 -
Python爬虫——Requests 库基本使用
Requests 库简介Requests 库是在 urllib 模块的基础上开发而来,继承了urllib.request的所有特性。Requests 采用了 Apache2 Licensed(一种开源协议)的 HTTP 库,支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码。与urllib.request 相比,Requests 在使用时更加简洁方便、快捷,所以 Requests 库在编写爬虫程序时使用较多。....原创 2022-08-19 09:53:21 · 1872 阅读 · 1 评论 -
Python爬虫——PhantomJS的使用和handless
Chrome handless 模式:由于新版本的 selenium 已经弃用 PhantomJs,PhantomJs也停止了更新和维护,所以推荐使用谷歌的Chrome handless模式(无头模式),这是一款无界面的谷歌浏览器,可以让使用者在不打开UI界面的情况下使用Chrome浏览器,并且运行效果与真实的Chrome浏览器一样,但是性能更高。PhantomJS 的使用。handless 使用实例。PhantomJS 简介。PhantomJS 下载。......原创 2022-08-17 10:55:56 · 1705 阅读 · 0 评论 -
Python爬虫——Selenium 浏览器交互与异常处理
在使用Selenium的时候,可能会遇到一些异常,例如超时(TimeoutException)、节点未找到(NoSuchElementException)等。为了让程序不停止运行我们可以使用 try except 语句来捕获各种异常,对异常进行处理。click() 方法是Selenium WebDriver提供的操作鼠标的方法,其作用是单击已经定位到的节点。Selenium 可以控制浏览器执行想要的动作,如前进、后退、点击、刷新、输入文本等。double_click(),其作用是双击已经定位到的节点。...原创 2022-08-15 17:49:42 · 791 阅读 · 0 评论 -
Python爬虫——Selenium 定位节点及获取节点信息
当我们想要操作一个节点时,必须先找到这个节点,通过 Selenium 提供的定位节点的方法可以获取到想要的节点,获取节点后可以选择是执行下一步动作(如填充表单、模拟点击等)还是提取数据。Selenium 4 之前使用 find_element_by_*() 方法定位节点,Selenium 4之后使用 find_element()方法。如果要查找所有符合条件的标签,需要用 find_elements,find_elements 的返回值是列表类型,可以用for循环遍历里面的节点。......原创 2022-08-12 10:46:13 · 5724 阅读 · 1 评论 -
Python爬虫——Selenium 简介和下载
Selenium 是一个用于测试 Web 应用程序的自动化测试工具,最初是为网站自动化测试而开发的。它支持多种平台:Windows、Linux、Mac,支持多种语言:Python、Perl、PHP、C# 等。Selenium 实现了很多自动化功能,比如检测软件与浏览器兼容性,软件自动化测试,生成不同语言的测试脚本,自动录制、以及自动化爬虫等。Selenium 直接运行在浏览器中,就像真正的用户在操作一样。...原创 2022-08-10 17:53:08 · 4427 阅读 · 0 评论 -
Python爬虫——BautifulSoup 节点信息
用get_text()获取span标签的文本内容,因为span标签没有子孙节点,所以只返回span标签的文本内容;待解析的html文本文件如下:id为al的p标签有子孙节点,id为bl的span标签没有子孙节点。string获取span标签的文本内容,因为span标签没有子孙节点,所以可以返回文本内容;用string获取p标签的文本内容,因为p标签有子孙节点,所以返回None;get_text()获取p标签的文本内容,返回p标签及子孙节点中的文本内容;使用实例2:对span标签进行解析,打印里面的内容。..原创 2022-08-08 15:38:30 · 1923 阅读 · 0 评论 -
Python爬虫——BautifulSoup 常用函数的使用
向BeautifulSoup 的select() 函数中传入CSS 选择器作为参数,就可以在 HTML 文档中检索到与之对应的内容,返回类型为列表类型。find_all() 函数(常用):搜索当前标签的所有子节点,并判断这些节点是否符合过滤条件,将所有符合条件的结果以列表形式返回。find_all() 函数的返回结果类型是列表类型,find() 函数返回的结果是找到的第一个节点。find() 函数:搜索当前标签的所有子节点,返回一个符合过滤条件的结果。text:标签的文本内容去匹配,而不是标签的属性。...原创 2022-08-05 16:09:54 · 2601 阅读 · 0 评论 -
Python爬虫——BS4解析方式简介
BautifulSoup简介BeautifulSoup简称BS4(其中4表示版本号4.x,之前的版本已经停止开发),是一个可以快速从HTML或XML文件中提取数据的第三方Python库。BeautifulSoup能够将HTML或XML转化为可定位的树形结构,并且提供一些简单的、python式的函数用来处理导航、查找、修改功能,缺点解析器解析器使用方法优点缺点Python标准库BeautifulSoup(html文件,“html.parser”)...原创 2022-08-01 11:51:28 · 636 阅读 · 0 评论 -
Python爬虫——JsonPath解析方式
并且JSONPath提供多种语言实现版本,包括JavaScript、Python、PHP和Java。JSONPath表达式始终引用JSON结构,就像XPath表达式与XML/HTML文档结合使用一样。原创 2022-07-29 15:29:11 · 1639 阅读 · 0 评论 -
Python爬虫——XPath的使用
可以用xpath插件来动态的获取xpath路径(将鼠标悬停在需要选取的文本数据上,然后按下shift按键就会自动出现定位该文本的Xpath表达式,然后再根据需求对表达式修改。先发送请求访问网站,得到网站源码,然后解析网站源码,从网站源码中使用xpath表达式定位到需要下载的图片地址,然后用urllib.request.urlretrieve()方法下载。4、调用xpath路径,提取数据,xpath的返回数据是列表类型。2、发送请求访问网站,得到服务器响应的页面源码。使用实例二从网站上下载图片。.......原创 2022-07-29 09:50:49 · 8633 阅读 · 1 评论 -
Python爬虫——XPath解析本地html文件
XPathXML路径语言(XMLPathLanguage),XPath作用是确定XML文档中某部分的位置,同时它也可以用于检索HTML文件。在使用爬虫过程中可以用XPath来爬取网页中想要的数据。Xpath使用简洁的路径表达式来匹配XML/HTML文档中的节点或者节点集,通过定位网页中的节点,从而找到我们需要的数据。Xpath提供了100多个内建函数,包括了处理字符串、数值、日期以及时间的函数。因此Xpath路径表达式几乎可以匹配所有的元素节点。......原创 2022-07-26 10:41:49 · 6907 阅读 · 1 评论 -
Python爬虫——代理和代理池
因此,我们一般都会建立一个代理,定期更换一个代理,即使这个IP被封了,也可以换另一个IP。使用User-Agent(用户代理)池,能够避免总是使用一个User-Agent来访问网站,因为短时间内总使用同一个User-Agent高频率访问的网站,可能会引起网站的警觉,从而屏蔽掉IP。代理池就是自己去收集网上的可用免费代理ip,自建自己的ip代理池。补充User-Agent(用户代理)池,类似IP代理池,就是把多个浏览器的User-Agent数据放入列表中,然后再从中随机选择一个来使用。.........原创 2022-07-15 10:10:17 · 11374 阅读 · 1 评论 -
Python爬虫——Cookie模拟登录
现在很多网站需要用户成功登录后才可以查看相关内容。使用Cookie 模拟登录可以很好地解决这种问题。Cookie 是指某些网站服务器为了辨别用户身份和进行Session跟踪,而储存在用户浏览器上的文本文件,Cookie是一个记录了用户登录状态以及用户属性的加密字符串,Cookie可以保持登录信息到用户下次与服务器的会话。Cookie 以键 / 值对形式存储。Cookie 验证流程:当用户第一次登陆网站时,服务端会在返回的响应头 Response Headers 中添加 Cookie数据, 浏览器接收到响应头原创 2022-07-14 17:27:28 · 5945 阅读 · 0 评论 -
Python爬虫——ajax的Get和Post请求
有些网站内容是使用ajax加载的,ajax通常返回的是JSON格式的数据,直接对ajax的 url 进行POST或GET方式请求,得到的就是JSON格式的数据。当前端页面想和后端服务器进行数据交互时就可以使用ajax。执行结果:Pycharm 格式化json文件快捷键:ctrl+alt+L执行结果:json文件成功下载执行结果:json文件成功下载到本地...原创 2022-07-14 14:46:16 · 1205 阅读 · 0 评论 -
Python爬虫——Get和Post请求的使用
GET请求一般用于我们向服务器获取数据( urllib默认使用get请求),比如搜索:毛不易,地址栏中的 URL 信息:其中wd 表示搜索字符串的键,而“毛不易”则代表输入的值在网页地址栏中删除wd后面多余的查询条件,最后显示的 URL 如下:但在上图Headers请求头里,发送的请求是:同样删除wd后面多余的查询条件,最后显示的 URL 如下:http://www.baidu.com/s? 后面出现的那个长长的字符串,就是搜索关键字“毛不易”的Unicode的编码格式。quote(str):对字符串原创 2022-07-14 10:13:51 · 2653 阅读 · 0 评论 -
Python爬虫——urllib下载和订制请求对象
下载资源使用urllib.request模块的urlretrieve()方法,urllib.request.urlretrieve():将URL对应的网络资源下载到本地,包括网页,图片和视频。2、定制请求绝大多数网站都具备一定程度的反爬能力,禁止网络爬虫程序大量地访问网站资源,以免给网站服务器带来压力,User-Agent(用户代理) 就是反爬策略的其中一种,很多网站都会对请求头Headers的User-Agent进行检测。用不同的浏览器在发送请求的时候,会有不同的User-Agent头:查看本机的浏览原创 2022-07-13 11:46:19 · 1058 阅读 · 0 评论 -
Python爬虫——urllib的基本使用
urllib 是Python3的内置模块,该模块能实现基本的网页爬取,基本上涵盖了基础的网络请求功能。urllib 库有四个模块:urllib.request,urllib.error,urllib.parse,urllib.robotparserurllib.request:发送http请求urllib.error:处理请求过程中,出现的异常。urllib.parse:解析urlurllib.robotparser:解析robots.txt 文件执行结果,由于篇幅过长,只简单显示一下:[外链图片转存失败原创 2022-07-12 17:52:40 · 438 阅读 · 0 评论 -
Python爬虫——网络爬虫简介
网络爬虫(Web Spider)又称“网络蜘蛛”或“网络机器人”,它是一种按照一定规则从互联网中获取网页内容的程序或者脚本。网络爬虫会模拟人使用浏览器,上网自动抓取互联网中数据。Python 爬虫指的是用 Python来编写爬虫程序。其他语言也可以编写爬虫,如 Java、PHP 、C/C++等,不过相比而言,Python 语法优美、代码简洁、开发效率高、支持多个爬虫模块,比如 urllib、requests、Bs4 等。Python 的请求模块和解析模块丰富成熟,并且还提供了强大的 Scrapy 框架,让编原创 2022-07-12 16:45:33 · 2797 阅读 · 0 评论 -
Python(十三)——序列化和反序列化
使用文件的写操作,可以将字符串直接写进文件;但如果要把一个Python对象(如:列表list,元祖tuple,字典dict)写入文件,就需要先把对象进行序列化,才能写入文件中。序列化:将内存中的数据对象转换成二进制对象序列反序列化:二进制对象序列转换成内存中的数据使用JSON实现序列化,JSON提供了dump()和dumps()方法实现对象的序列化。语法格式:参数说明:obj:要转换的 Python 对象。protocol:转码协议,取值为 0、1、2、3、4,其中 0、1、2 对应 Python 早期的原创 2022-07-11 16:04:52 · 789 阅读 · 0 评论 -
Python(十二)——文件基本操作
open()函数:创建或打开指定的文件,并返回文件对象使用格式:参数说明:文件打开模式(常见):使用实例:打开文件之后,可以获取当前文件的部分信息,常见的属性有:使用实例:执行结果:2、读写操作2.1、读操作读取文件内容可使用 read()、readline() 以及 readlines() 函数;read()函数:逐个读取文件中的字符语法格式:file:文件对象size :可选参数,用于指定一次最多可读取的字符(字节)个数,则默认一次性读取所有内容。使用实例:执行结果:readlin原创 2022-07-10 17:13:43 · 1432 阅读 · 0 评论 -
Python(十一)——自定义函数的详细使用
函数定义格式:参数列表:函数可以接收多个参数,参数之间用逗号隔开返回值:返回值可以有也可以没有使用实例:打印两个数的最大值执行结果:形参:在定义函数时,函数名后面括号中的参数实参:在调用函数时,函数名后面括号中的参数使用实例:在定义函数时,可以直接给形式参数指定一个默认值,在调用时不指定参数的值,也可以直接使用定义函数时设置的默认值。定义时,有默认值的参数要定义在后面:执行结果:调用时给b传的值为20,而a使用的是默认值102、全局变量和局部变量局部变量:定义在函数外部的变量,可以原创 2022-07-08 17:03:39 · 7247 阅读 · 0 评论 -
Python(十)——字典的详细使用
如果要向现有的字典添加新的键值对,直接给 key 赋值( 只要是Python 支持的数据类型都可以)即可,前提是key不存在,如果存在就会修改这个键所对应的值。执行结果:键值对逐个添加进字典中2、修改元素字典中键值对的key是唯一的,要修改键值对,只需要对字典中已存在的key重新赋值即可。执行结果:3、删除元素使用del关键字加键值对的key,可以删除这个键值对:执行结果:del关键字后面接字典,可以之间删除字典:4、in 和 not inin 和 not in可以判断键值对是否存在或是原创 2022-07-07 19:19:29 · 1154 阅读 · 1 评论 -
Python(九)——元组的详细使用
元组(tuple)和列表类似,也是由一系列按特定顺序排序元素组成的。元组和列表的不同之处在于:列表的元素是可以更改的;而元组一旦被创建,它的元素就不可更改了,所以元组通常用于保存无需修改的内容。方式一(常用):使用()定义元组,在()内添加元组的元素:在同一元组中,元素的类型可以不同执行结果:打印元组以及打印元组类型方式二:不使用(),直接定义元组元素,并且元素之间用逗号隔开,如下:执行结果:方式三:用tuple()函数定义元组,tuple()函数只接受一个数据类型的参数,tuple()函数会将这个原创 2022-07-07 16:39:22 · 1894 阅读 · 0 评论 -
Python(八)——列表的详细使用
append()方法:在列表的末尾追加元素执行结果:insert()方法:在列表的指定索引位置添加元素执行结果:extend()方法:将一个列表中的元素从头开始逐一添加到列表中执行结果:2、删除元素del关键字:根据目标元素索引进行删除执行结果:当直接使用del 接列表名时,会删除整个列表pop()方法:当不指定下标时,默认会删除列表最后一个元素(类似于出栈操作),指定下标时会删除指定元素执行结果:remove()方法:根据元素的值来进行删除,如果有两个值,只会删除第一个,如果原创 2022-07-05 09:31:54 · 391 阅读 · 0 评论 -
Python(七)——字符串的详细使用
方式一:将两个字符串常量紧挨在一起,打印时会拼接起来执行结果:这种方式只适用于字符串常量的拼接方式二:使用+将来两个字符串拼接执行结果:这种方式可以拼接字符串常量和变量方式三:join()方法,join()会将列表(或元组)中多个字符串使用指定的分隔符拼接在一起执行结果:拼接字符串和数字,需要先把数字从数值类型转成字符串类型,可以使用str()方法执行结果:执行结果:用于检索指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的索引值,反正则返回-1执行结果:原创 2022-07-05 09:10:04 · 326 阅读 · 0 评论 -
Python(六)——流程控制
说明:如果表达式成立,就执行后面的代码块;如果表达式不成立,就什么也不执行。运行结果:如果输入的年龄小于 18,就不执行 if 后面的语句块;如果输入的年龄大于等于 18,就执行 if 后面的代码块。说明:如果表达式成立,就执行 if 后面紧跟的代码块1;如果表达式不成立,就执行 else 后面紧跟的代码块2。运行结果:如果输入的年龄大于等于 18,就执行 if 后面的语句块;如果输入的年龄小于18,就执行else 后面的代码块。说明:Python 会从上到下逐个判断表达式是否成立,一旦遇到某个原创 2022-07-03 10:31:33 · 309 阅读 · 0 评论 -
Python(五)——运算符的使用
执行结果:执行结果:执行结果:执行结果:执行结果:执行结果:2、赋值运算符运算符说 明用法举例等价形式=最基本的赋值运算x = yx = y+=加赋值x += yx = x + y-=减赋值x -= yx = x - y*=乘赋值x *= yx = x * y/=除赋值x /= yx = x / y%=取余数赋值x %= yx = x % y**=幂赋值x **= yx原创 2022-07-01 16:04:15 · 1030 阅读 · 0 评论 -
Python(四)——变量的定义和简单使用
定义变量语法格式:variable_name表示变量名;variable_name表示值,也就是要存储的数据。2、变量的简单使用Python是弱类型语言,弱类型语言有下面两个特点:不管对于多大或者多小的整数,Python 3.x 只用 int 一种类型存储,表示为长整型,并且整数的取值范围是无限的,如下实例:执行结果:x和y是极大的数字和极小的数字,Python 都能正确输出且不会发生溢出Python 只有一种小数类型,就是 float,像int一样Python能存储极小和极大的浮点数。如下实例原创 2022-06-30 17:23:03 · 3364 阅读 · 0 评论 -
Python(三)——如何运行Python程序
在命令行窗口中直接输入代码,按下回车键就可以运行代码,并立即看到输出结果;执行完一行代码,你还可以继续输入下一行代码,再次回车并查看结果……整个过程就好像我们在和计算机对话,所以也称为交互式编程。Python 源文件是一种纯文本文件,内部没有任何特殊格式,你可以使用任何文本编辑器打开它。Python 源文件的后缀为.py,Python 3.x默认的源文件编码格式为UTF-8。1、创建源文件,新建txt文本文件,后缀名改为.py(),编写内容后保存:2、执行源文件命令格式:源文件路径可以使用相对路径或绝对路原创 2022-06-27 16:44:38 · 4279 阅读 · 0 评论 -
Python(二)——pip的简单使用
pip是一个现代的,通用的Python包管理工具。提供了对Python包的查找、下载、安装、卸载的功能,便于我们对Python的资源包进行管理。pip 已内置于 Python 3.4 和 2.7 及以上版本,其他版本需另行安装。pip官方文档:https://pip.pypa.io/en/stable/在安装Python时,界面上勾选pip一栏,会自动下载并且安装pip命令行输入 pip -V 查看pip的版本信息:如果没有出现版本号需要手动配置scripts环境变量。pip的使用命令:使用实例:安装ip原创 2022-06-27 16:27:09 · 4866 阅读 · 0 评论 -
Python(一)——简介与Windows平台安装
Python 是一种面向对象的、解释型的、通用的、开源免费的、动态数据类型的高级程序设计语言。Python 英文原意为“蟒蛇”,直到 1989 年荷兰人 Guido van Rossum (简称 Guido)发明了一种面向对象的解释型编程语言,并将其命名为 Python,才赋予了它表示一门编程语言的含义。Python 语言是在 ABC 教学语言的基础上发展来的;遗憾的是,ABC 语言虽然非常强大,但却没有普及应用,就Guido本人看来,ABC失败的原因是高级语言为时过早,并且平台迁移能力弱,难以添加新功能,原创 2022-06-27 13:52:52 · 425 阅读 · 0 评论