202010-08 Python3爬虫中关于Ajax分析方法的总结 这里还以前面的微博为例,我们知道拖动刷新的内容由Ajax加载,而且页面的URL没有变化,那么应该到哪里去查看这些Ajax请求呢?1.查看请求这里还需要借助浏览器的开发者工具,下面以Chrome浏览器为例来介绍。首先,用Chrome浏览器打开微博的链接https://m.weibo.cn/u/2830678474,随后在页面中点击鼠标右键,从弹出的快捷菜单中选择“检查”选项,此时便会弹出开发者工具,如图6-2所示:此时在Elements选项卡中便会观察到网页的源代... 继续阅读 >
202010-08 Python3爬虫中Ajax的用法 Ajax,全称为AsynchronousJavaScriptandXML,即异步的JavaScript和XML。它不是一门编程语言,而是利用JavaScript在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术。对于传统的网页,如果想更新其内容,那么必须要刷新整个页面,但有了Ajax,便可以在页面不被全部刷新的情况下更新其内容。在这个过程中,页面实际上是在后台与服务器进行了数据交互,获取到数据之后,再利用JavaScript改变网页,... 继续阅读 >
202010-08 Python3爬虫中Selenium的用法详解 Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些JavaScript动态渲染的页面来说,此种抓取方式非常有效。本节中,就让我们来感受一下它的强大之处吧。1.准备工作本节以Chrome为例来讲解Selenium的用法。在开始之前,请确保已经正确安装好了Chrome浏览器并配置好了ChromeDriver。另外,还需要正确安装好Python的Sel... 继续阅读 >
202010-08 Python3爬虫中Splash的知识总结 Splash是一个JavaScript渲染服务,是一个带有HTTPAPI的轻量级浏览器,同时它对接了Python中的Twisted和QT库。利用它,我们同样可以实现动态渲染页面的抓取。1.功能介绍·利用Splash,我们可以实现如下功能:·异步方式处理多个网页渲染过程;·获取渲染后的页面的源代码或截图;·通过关闭图片渲染或者使用Adblock规则来加快页面渲染速度;·可执行特定的JavaScript脚本;·可通过Lua脚本来控制页面渲染过程;·获取渲染的详细过... 继续阅读 >
202010-08 Python3爬虫里关于Splash负载均衡配置详解 用Splash做页面抓取时,如果爬取的量非常大,任务非常多,用一个Splash服务来处理的话,未免压力太大了,此时可以考虑搭建一个负载均衡器来把压力分散到各个服务器上。这相当于多台机器多个服务共同参与任务的处理,可以减小单个Splash服务的压力。1.配置Splash服务要搭建Splash负载均衡,首先要有多个Splash服务。假如这里在4台远程主机的8050端口上都开启了Splash服务,它们的服务地址分别为41.159.27.223:8050、41.159.27.221:... 继续阅读 >
202010-08 python3爬虫中异步协程的用法 1.前言在执行一些IO密集型任务的时候,程序常常会因为等待IO而阻塞。比如在网络爬虫中,如果我们使用requests库来进行请求的话,如果网站响应速度过慢,程序一直在等待网站响应,最后导致其爬取效率是非常非常低的。为了解决这类问题,本文就来探讨一下Python中异步协程来加速的方法,此种方法对于IO密集型任务非常有效。如将其应用到网络爬虫中,爬取效率甚至可以成百倍地提升。注:本文协程使用async/await来实现,... 继续阅读 >
202010-08 在CentOS7下安装Python3教程解析 查看系统原有Python注:可以将python指向python3,但必须修改一些命令如yum的配置,不然会报错。安装依赖yuminstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmake下载python3.8.1(版本太多,我也不知道选哪个,看了官方文档,就先用stable/稳定版吧)wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz解压缩并编译安装[root@pmmy~]#tar-xvfPython... 继续阅读 >
202010-08 Python3基于print打印带颜色字符串 一、实现过程终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)书写格式:开头部分:\033[显示方式;前景色;背景色m+结尾部分:\033[0m注意:开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;另外由于表示三个参数不同含义的数值都是唯一的没有重复的,... 继续阅读 >
202010-08 Python3实现建造者模式的示例代码 建造者模式建造者模式用于创建复杂的对象。使用建造者模式可以使复杂的过程层次明了、清晰,把对象的创建以及使用进行了解耦。实际上从代码的角度上看,是进行了多次封装,使代码结构更为规范合理,层次结构更加鲜明。在一个复杂的对象中,需要编写大量的代码去实现这一个类,并且在进行初始化时,也有可能会有大量的参数去进行初始化。建造者模式把实现一个类给拆分成多个创建步骤,这些步骤在大多数相关资料中,一般以拟人化的形... 继续阅读 >
202010-08 python3的pip路径在哪 python3.4以上的版本中,是默认自带pip的。查看pip的方法下载安装好python后,进入命令行,输入pip-V,即可查看python版本号C:\Users\Administrator>pip-V输出结果pip19.2.2fromc:\anaconda\lib\site-packages\pip(python3.7)手动安装pip可以使用以下方法来安装:$curlhttps://bootstrap.pypa.io/get-pip.py-oget-pip.py#下载安装脚本$sudopythonget-pip.py#运行安装脚本注意:用哪个版本的Python运行安装脚... 继续阅读 >
202010-08 Python3 webservice接口测试代码详解 一、使用python3做webervice接口测试的第三方库选择suds-jurko库,可以直接pip命令直接下载,也可以在pypi官网下载压缩包进行手动安装二、安装好后,导入Client:fromsuds.clientimportClient。发送一条请求fromsuds.clientimportClienturl='http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl'client=Client(url)#打印所有webservice接口信息print(client)但是会出现错误:Traceback(mostrecent... 继续阅读 >
202010-08 Python3与fastdfs分布式文件系统如何实现交互 一、先配置好自己的分布式文件系统参考另一篇文章:https://www.jb51.net/article/189283.htm二、安装第三方库py3Fdfspipinstallpy3Fdfs三、实际应用,参考文档https://pypi.org/project/py3Fdfs/fromfdfs_client.clientimportget_tracker_conf,Fdfs_client#client.conf配置文件路径conf=get_tracker_conf(r‘client.conf‘)client=Fdfs_client(conf)#文件路径result=client.upload_appender_by_filename(r‘U01.png... 继续阅读 >
202010-08 python2和python3哪个使用率高 python语言是在20世纪90年代诞生的,算算到现在已经是25岁的大叔级的语言了(跟它同一个时代的还有一个鼎鼎大名的java是在1995发行的,红了几十年).但是Python真正成名比java晚了很多年,其实也主要是应用领域的时代变迁.(猜测为啥,对了大数据的出现)Python2是Python里面一个非常重要的版本,最早的版本是从2001的时候开始的,特别是从2006年开始py2.5的发布,python的功能逐渐强大起来,慢慢开始稳定下来,并且差不多1-2年左右递... 继续阅读 >
202010-08 Python3 requests模块如何模仿浏览器及代理 requests是使用Apache2licensed许可证的HTTP库。用python编写。比urllib2模块更简洁。Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作。代码如下importrequestsdefxiaodai():url='http:/... 继续阅读 >
202010-07 新手学习Python2和Python3中print不同的用法 在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异主要体现在以下几个方面:1.python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构;2.Python2打印时可以不加括号:print'helloworld',Python3则需要加括号print("helloworld")3.Python2中,input要求输入的字符串必须要加引号,为了避免读取非字符串类型发生的一些行为,不得不使用raw_input()代替input()1.python3中... 继续阅读 >
202010-06 Python3通过chmod修改目录或文件权限的方法示例 简单的介绍下linux文件权限linux中,文件的权限分为"所有者、组、其他用户"三个角色,每个角色由3个bit位表示它的权限,3bit从左到右分别为读写执行三个权限,3bit的值范围为0~7。所以如果直接在linux执行chmod777xxx.sh代表,将xxx.sh文件赋予所有者、组、其他用户这三个角色对xxx.sh文件的读写执行权限。os的chmodpython的os模块负责操作系统层面的操作。修改文件权限可以通过os的chmod方法来操作。os.chmod(path,mode)方法的... 继续阅读 >