python
文章平均质量分 50
cliviabao
这个作者很懒,什么都没留下…
展开
-
解决报错RecursionError: maximum recursion depth exceeded in comparison
报错在使用python爬取新浪微博的时候,采取了深度优先来抓取,写了个递归函数。但有个页面的值出现了异常,最后报了RecursionError: maximum recursion depth exceeded in comparison这个错误。 尝试发现python默认的递归深度是很有限的(默认是1000),因此当递归深度超过999的样子,就会引发这样的一个异常。于是我写了下面的代码进行测试...原创 2018-04-13 15:20:08 · 83344 阅读 · 5 评论 -
提高效率之python的多线程
python本身的设计对多线程的执行有所限制。为了数据安全设计有GIL全局解释器锁。在python中,一个线程的执行包括获取GIL、执行代码直到挂起和释放GIL。每次释放GIL锁,线程之间都会进行竞争,由拿到锁的线程进入cpu执行,所以由于GIL锁的存在,python里的一个进程永远只能同时执行一个线程。python的多线程python的多线程实际上只是在执行的时候看起来像是并发的。· 使用thr...原创 2018-06-04 17:53:35 · 5257 阅读 · 0 评论 -
python获取本机ip
最近在爬虫中尝试了拨号的服务器,每次拨号可以更换公网ip,于是想记录一下ip地址。一、在linux终端在linux下直接使用ifconfig命令就能看到网卡信息。二、使用pythonimport socketimport fcntlimport structdef get_ip_address(ifname): s = socket.socket(socke...原创 2018-09-26 17:56:55 · 716 阅读 · 1 评论 -
windows下MongoDB的安装与基本操作
爬虫需要存储大量的数据,有时返回的数据都是json格式,这时选用NoSQL数据库存储就方便很多了。MongoDB是一个基于分布式文件存储的数据库,本身就为web应用提供了可扩展的高性能数据存储,在爬虫中使用MongoDB可以提供不少便利。一、安装下载地址:https://www.mongodb.com/download-center/community,下载完成后按步骤安装即可。安...原创 2019-04-11 20:52:54 · 234 阅读 · 0 评论 -
python爬虫之selenium
当网页由javascript生成且不包含ajax接口请求的时候,需要使用模拟浏览器运行的方式来爬取需要的数据。一、安装与准备selenium本身使用pip安装即可,除此之外还需要安装浏览器及驱动。我自己安装了chrome和firefox。chrome对应的驱动为ChromeDriver,firefox对应的驱动为GeckoDriver。分别百度下载即可。(我下的都是最新的,历史版本需要...原创 2019-04-09 20:38:10 · 292 阅读 · 0 评论 -
python爬虫之selenium识别滑动验证码
最早在爬虫中遇到滑动验证码是在国家企业信用信息公示系统中,当时也是运用selenium来完成。现在该网站已经改为点触验证码了,故现在用bilibili登录页面作为一个示例。一、识别思路识别滑动验证码需要完成如下几步:1)模拟点击验证按钮2)得到完整的验证码图片3)得到带缺口的验证码图片4)比较图片的像素差异,识别缺口5)模拟滑动动作二、初始化b站的登录地址为ht...原创 2019-04-11 13:32:36 · 5769 阅读 · 3 评论