常见的反爬机制及处理方式1、Headers反爬虫:Cookie、Referer、User-Agent解决方案:通过F12获取headers,传给requests.get()方法2、IP限制:网站根据IP地址访问频率进行反爬,短时间内进制IP访问解决方案:1、构造自己IP代理池,每次访问随机选择代理,经常更新代理池2、购买开放代理或私密代理IP3、降低爬取的速度3、User-Agent限制:类似于IP限制解决方案:构造自己的User-Agent池,每次访问随
系统 2019-09-27 17:51:32 2216
一心想学习算法,很少去真正静下心来去研究,前几天趁着周末去了解了最短路径的资料,用python写了一个最短路径算法。算法是基于带权无向图去寻找两个点之间的最短路径,数据存储用邻接矩阵记录。首先画出一幅无向图如下,标出各个节点之间的权值。其中对应索引:A――>0B――>1C――>2D――>3E――>4F――>5G――>6邻接矩阵表示无向图:算法思想是通过Dijkstra算法结合自身想法实现的。大致思路是:从起始点开始,搜索周围的路径,记录每个点到起始点的权值
系统 2019-09-27 17:51:19 2216
OS模块OS就是OperatingSystem的缩写,意为操作系统,这可是一个非常高大上的模块,因为在python中,对于文件系统的访问就是通过OS模块来实现的。我们所知道常用的操作系统就有Windows、MacOS、Linux、UNIX等,这些操作系统底层对于文件系统的访问工作原理是不一样的,因此你可能就要针对不同的系统来考虑使用哪些文件系统模块,这样的做法是非常麻烦的,因为如果程序的运行环境一旦改变,你就要相应的去修改大量的代码来应付。但是python
系统 2019-09-27 17:51:13 2216
一些概念:import:当你import的时候,python只会在sys.path这个变量(一个list,你可以print出来看)里面的路径中找可能匹配的package和module。module:模块就是py文件package:package就是里面有__init__.py的文件夹。这个__init__.py最好是空的,功能就是告诉python这个是个package而不是普通的文件夹。如果__init__.py中有代码的话,这些代码会在package被i
系统 2019-09-27 17:51:01 2216
Python运行的慢是历来被诟病的,一方面和语言有关,另一方面可能就是你代码的问题。语言方面的问题我们解决不了,所以只能在编程技巧上来提高程序的运行效率。下面就给大家分享几个提高运行效率的编程方法。首先,我们需要来衡量代码的时间和空间的复杂性,不然仅仅用我们的肉眼很难感受代码时间长短的变化。python中的profiler可以帮助我们测量程序的时间和空间复杂度。使用时通过-o参数传入可选输出文件以保留性能日志。具体使用方法如下:python-mcProfi
系统 2019-09-27 17:48:32 2216
阅读更多万能的Python大法可以做很多有趣的事情,那我们今天来看看使用简单的Python来实现对一个网页的朗读吧!首先我们需要装一些必要的库:readability它是用来提取网页内的内容的pipinstallreadability-lxmlgoose它是一个文章提取器,我们用它来进行文章的提取pipinstallgoose3baidu-aip百度提供的PythonSDK,接口文档:http://ai.baidu.com/docs#/TTS-Online
系统 2019-09-27 17:48:25 2216
例1:给一个列表如下,里面每个元素对应的是x和y的值a=[[5,2],[6,3],[8,8],[1,3]]现在要挑出y的值为3对应的x的值,即6和1importnumpyasnpa=[[5,2],[6,3],[8,8],[1,3]]#c=np.mat(a),因为只有矩阵(也可以用array)才能用a[0,0]这样的调用#表示第一个数的用法而list没有,故在最后append需要用到#注意:array也没有index这样的用法(只有list有,此题a已经是l
系统 2019-09-27 17:48:10 2216
目的检测字符串中是否包含某字符集合中的字符方法最简洁的方法如下,清晰,通用,快速,适用于任何序列和容器复制代码代码如下:defcontainAny(seq,aset):forcinseq:ifcinaset:returnTruereturnFalse第二种适用itertools模块来可以提高一点性能,本质上与前者是同种方法(不过此方法违背了Python的核心观点:简洁,清晰)itertools.ifilter(predicate,iterable)的说明M
系统 2019-09-27 17:46:52 2216
一个功能的实现,可以用多种语句来实现,比如说:while语句、for语句、生成器、列表推导、内置函数等实现,然而他们的效率并不一样。写了一个小程序来测试它们执行的效率。测试内容:将一个数字大小为20万的数字,依次取绝对值,放到列表中,测试重复1千次.测试程序:复制代码代码如下:importtime,sysreps=1000#测试重复次数nums=200000#测试时数字大小deftester(func,*args):#总体测试函数startTime=tim
系统 2019-09-27 17:45:55 2216
当你标记了翻译字符串,你就需要写出(或获取已有的)对应的语言翻译信息。这里就是它如何工作的。地域限制Django不支持把你的应用本地化到一个连它自己都还没被翻译的地域。在这种情况下,它将忽略你的翻译文件。如果你想尝试这个并且Django支持它,你会不可避免地见到这样一个混合体�C�C参杂着你的译文和来自Django自己的英文。如果你的应用需要你支持一个Django中没有的地域,你将至少需要做一个Djangocore的最小翻译。消息文件第一步,就是为一种语言
系统 2019-09-27 17:38:39 2216