![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
程序员杂谈
自我评价
诚实信用 勤奋刻苦 有较强的组织能力和团队意识
责任心强 有创新精神 自学能力较好
精通seo优化
展开
-
一行代码让 Python 的运行速度提高100倍
转自公众号:python宝典 链接:https://mp.weixin.qq.com/s/Vm0BKSljCzMMgRmIBbpxdQpython一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差。“一行代码让python的运行速度提高100倍”这绝不是哗众取宠的论调。我们来看一下这个最简单的例子,从1一直累加...转载 2019-04-10 08:33:35 · 311 阅读 · 0 评论 -
爬虫自动登录访同授权页面
http.cookiejar模块该模块主要的类有 Cookiejar,、 Filecookiejar、 MozillaCooklejar、 LwpCookiejar。这四个的作用分别如下1.CookieJar:管理HTTPcookie值、存储HTTP请求生成的cookie、向传出的HTTP请求加cookies的对象,整个cookie都存储在内存中,对 Cooklejar实例进行垃圾回收后coo...原创 2018-12-25 09:01:31 · 935 阅读 · 0 评论 -
爬虫使用cookie模拟登录
使用cooklelib库和Httpcookieprocessora模拟登录Cookie是指网站服务器为了辨别用户身份和进行 Session跟踪,而储存在用户浏览器的文本文件, Cookie可以保持登录信息到用户下次与服务器的会话。这里以人人网为例。人人网中,要访回某个人的主页,必须先登录才能访问,登录说白了就是要有cookie信息。那么如果我们想要用代码的方式访问,就必须要有正确的cooki...原创 2018-12-24 17:48:52 · 2492 阅读 · 1 评论 -
Proxyhandler处理器
Proxyhandler处理器(代理):1.代理的原理:在请求目的网站之前,先请求代理服务器,然后让代理服务器去请求目的网站,代理服务器拿到目的网站的数据后,再转发给我们的代码。2.http://httpbin.org:这个网站可以方便的查看http请求的一些参数。3.在代码中使用代理 *使用url1ib. request. Proxyhandler,传入一个代理,这个代理是一个字典...原创 2018-12-24 14:48:44 · 2304 阅读 · 0 评论 -
selenium常用操作
更多程请如考:http://selenium-python.readthedoc.lo//inatallationhtmlintroduction关闭页面:1. driver.c1ose():关闭当前页面。2. driver.auit():退出整个览器。定位元素1. find_element_by_id:根据id来查找某个元弄。等价于:submittag=driver.find...原创 2018-12-29 16:02:37 · 275 阅读 · 1 评论 -
什么是AJAX及其应用
AJAX( Asynchronouse Javascript And XML)异步Javascript和XML・过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味看可以在不重新加载整个网页的情况下,对网页的某部分进行更斯。传统的页(不使用Ajax)如果需要更新内容,必须重整个网页页面。因为传统的在传数据格式方面,使用的是XML语法。因此叫做AJAX,其实现在数据交互基本上都是...原创 2018-12-29 14:33:33 · 288 阅读 · 0 评论 -
Queue线程安全队列
在线程中,访问一些全局变量,加锁是一个经常的过程。如果你是想把一些数据存储到某个队列中,那么 Python内置了一个线程安全的模块叫做 queue 模块。 Python中的queue模块中提供了同步的、线程安全以列类,包括FIFO(先进出)队列 Queue,LIFO(后入先出)队列 LifoQueue。这些队列都实现了锁原语(可以理解为原子操作,即么不做,更么都做完),能够在多程中直接使用。可以...原创 2018-12-29 11:45:16 · 3646 阅读 · 1 评论 -
生产者和消费者模式
Lock版本生产者和消费者模式生产者和消费者模式是多线程开发中经常见到的一种模式。生产者的线程专门用来生产一些数据,然后存放到一个中间的变量中。消费者再从这个中间的变量中取出数据进行消费。但是因为要使用中间娈量,中间变量经常是一些全局变量,因此需要使用锁来保证数据完整性。以下是使用 threading.Lock锁实现的"生产者与消费者模式"的一个例子import threadingi...原创 2018-12-29 10:56:42 · 504 阅读 · 0 评论 -
多线程概念和Threading模块介绍
多线程爬虫有些时候,比如下图片,因为下载图片是一个耗时的操作。如果采用之前那种同步的方式下载。那效率肯会特别慢。这时候我们就可以考虑使用多线程的方式来下图片。多线程介绍:多程是为了同步完成多项任务,通过提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。最简单的比喻多线程就像火车的每一节车用,而进程贝是火车。车厢离开火车是无法跑动的,同理火车也可以有多节车厢。...原创 2018-12-29 10:14:09 · 424 阅读 · 0 评论 -
Json字符串简介
jSon文件处理什么是json:JSON(Javascript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它基于 Ecmascript(w3c制定的js规范)的一个字迹,采用完全独立于编语言的文本式来存储和表示数据。简洁和清晰的层次结构使得JSoN成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解折和生成,并有效地提升网络传效率。JSON支持数据格式...原创 2018-12-28 17:51:14 · 504 阅读 · 0 评论 -
正则表达式汇总
规则通俗理解:按照一定的规则,从某个字符串中匹配出来想要的数据。这个规则就是正则表达式。这则表达式常用的匹配规则:匹配摸个字符串:text = 'hello'ret = re.match('he',text)print(ret.group())>>he以上便可以在hello中,匹配出 he。点(.)匹配任意的一个字符:text = 'ab'ret ...原创 2018-12-28 15:05:11 · 267 阅读 · 0 评论 -
selenium切换页面
有时候窗口中有很多tab页面。这时候肯定是需要进行切换的。selenium提供了一个叫做switch_to_window来进行切换,具体切换到个页面,可以diver.window_handles中找到。示例代码如下:打开一个新页面self.driver.execute_script("window.open('"+ url+"')")切换的这个新的页面中self.driver...原创 2019-01-04 08:27:46 · 1654 阅读 · 0 评论 -
selenium打开多窗口和切换窗口
设置代理IP:有时候频繁爬取一些两页。服务器发现你是爬虫后会封掉你的p地址・这时候我们可以更改代理IP・更改代理IP,不同的浏览器有不用的实现方式。这里以 Chrome览器为例来讲解from selenium Import webdrlveroptions=webdriver.Chromeoptions()options.add_argument("proxy-server-http:...原创 2019-01-04 15:53:24 · 2090 阅读 · 0 评论 -
编程接口设计规范
接口示例接口描述:用户登陆成功后,或进入首页时会获取一次用户信息。 URI 方法 /userinfo GET 请求参数 名称 必填 备注 id 是 用户id 响应参数 名称...原创 2019-03-01 09:17:57 · 1716 阅读 · 0 评论 -
restful接口设计规范总结
这篇 文章主要是借鉴他人,但是自己很想总结出一套规范,以供向我这样的新手使用,用来规范代码,如果有什么好的提议,请不吝赐教,本篇文章长期更新!一、重要概念:REST,即Representational State Transfer的缩写。我对这个词组的翻译是"表现层状态转化"。Resource(资源) :对象的单个实例。 例如,一只动物。它可以是一段文本、一张图片、一首歌曲、一种服务...转载 2019-03-01 08:32:59 · 514 阅读 · 0 评论 -
CrawlSpider
在上一个糗事百科的爬虫案例中。我们是自己在解析完整个页面后获取下一页的url,然后重新发送一个请求。有时候我们想要这样做,只要满足某个条件的url,都给我进行爬取。那么这时候我们就可以通过Craw1spider来帮我们完成了。cralsder继承自 Spider,只不过是在之前的基础之上增加了新的功能,可以定义爬取的url的规则,以后scrapy碰到两足条件的url都进行爬取,而不用手动的 yi...原创 2019-01-09 16:02:09 · 669 阅读 · 0 评论 -
用scrapy创建爬虫项目
创建项目和爬虫:1.创建项目:`scrapy startproject [爬虫的名字]`2.创建爬虫:进入到项目所在的路径,执行命令:`scrapy genspider [爬虫名字] [爬虫的域名]注意:爬虫名字不能和项目名称一致项目目录结构:1. Items.py:用来存放爬虫爬取下来数据的模型.2. middlewares.py:用来存放各种中间件的文件。3. pipeline...原创 2019-01-09 13:49:39 · 561 阅读 · 1 评论 -
Scrapy框架架构
Scrapy框架介绍写一个爬虫,需更做很多的事情。比如:发送网络请求、数据解折、数据存储、反反爬虫机制(更换IP'代理、设置请求头等)、异步请求等。这些工作如果每次都要自己从零开始写的话,比较浪费时间。因此scrapy把一些基础的东西封装好了,在他上面写虫可以变的更加的高效(爬取效率和开发效率)。因此真正在公司里,一些上了量的配虫,都是使用scrap架来解决。 Scrap框架模块...原创 2019-01-07 15:25:00 · 439 阅读 · 0 评论 -
图形验证码识别技术
阻碍我们爬虫的。有时候正是在登录或者请求一些数据时候的图形验证码。因此这里我们讲解一种能将图片翻译成文字的技术。将图片翻译成文字一般被成力光学文字R别( optical Character Recognition),简写OCR。实现OCR的库不是很多,特别是开源的因为这块存在一定的技术壁(需要大量的数据、算法、机器学习、深度学习知识等),并且如果做好了具有很高的商业价值。因此开源的比技少。这里...原创 2019-01-07 10:43:25 · 2775 阅读 · 0 评论 -
selenium的隐式等待和显式等待及cookie操作
页面等特:现在的网页越来越多采用了Ajax技术,这样程序便不能确定何时某个元素完全加载出来,入股实际页面等待时间过长导致某个dom元素还没出来,但是你的代码直接使用了这个 Webelement,那么就会上Nullpointerf的异常,为了解决这个问题,所以 Selenium提供了两种等待方式:一种是隐式等待、一种是式等待1.隐式等待:调用 driverim.plicitly_wait。那...原创 2019-01-02 11:31:37 · 416 阅读 · 0 评论 -
selenium操作表单元素
操作表单元素1、操作输入框:分为两出,解一步:找到这个元素,解二步:使用 send_key(value),将数据填充进去,示例代码知下inputTag = driver.find_element_by_id('kw')inputTag.send_keys('python')使用clear方法可以清除输入框中的内容。示例代码下:inputTag.clear()2.操作 chec...原创 2019-01-02 11:13:01 · 3750 阅读 · 0 评论 -
Pipline(流水线)和主成分分析
Pipline(流水线),这个模型的理论基础是联结主义,从工程实现的角度来讲,我们首先调用spectral embedding 对训练数据做特征提取,再调用K-means完成最后的模型预算,这是pipeline的实际理念。一个piipeline有n个模型顺序组成,其中前n-1个模型被称为Transformer,主要作用是对数据进行特征提取,最后一个模型被称为Estimator,主要作用是在特征的...原创 2018-12-25 18:22:25 · 1119 阅读 · 0 评论 -
Scrapy Shell
我们想要在爬虫中使用 xpath、 beautifulsoup、正则表达式、css选择器等来提取想更的数据・但是因力scrapy是一个比较重的框架。每次运行起来都更等待一段时间。因此要去验证我们写的提取規则是否正确,是一个比较麻烦的事情。因此scrapy提供了一个shell,用来方便的测试规则。当然也不仅仅局限于这一个功能。打开 Scrapy Shell打开cmd终端,进入到 Scrapy项目...原创 2019-01-10 14:40:19 · 383 阅读 · 0 评论 -
Beautifulsoup4库提取数据详解
Beautlfu1Soup记:find_all的使用:1.在提取标签的时候,第一个参数是标签的名字。然后如果在提取标签的时候想要使用标签属性进行过滤,那么可以在这个方法中通过关键字参数的形式,将属性的名字以及对应的值传进去。或者是使用 attrs属性,将所有的属性以及对应的值放在一个字典中传给attrs属性2.有些时候,在提取标签的时候,不想提取那么多,那么可以使用1imit参数。限制提取多...原创 2018-12-28 10:43:22 · 1168 阅读 · 0 评论 -
Beattifulsoupk库的基本介绍
Beautifulsoup4库和lxml一样, BeautifulSoup也是一个 HTML/XML的解析器,主更的功能也是如何解析和提取HTML/XML数据。lxml只会局部便利,而BeautifulSoup是基于HTMLDOME的,会载入整个文档,解折整个DOM树,因此时间和内存开销都会大很多,所以性能要低于xml。Beautifulsoup用来解析HTML比简单,APE常人性化,支持C...原创 2018-12-27 11:40:58 · 650 阅读 · 0 评论 -
机器学习算法---神经网络
神经网络神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,携着“深度学习”之势,神经网络重装归来,重新成为最强大的机器学习算法之一。神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在BP算法(加速神经网络训练过程的数值算...转载 2018-05-21 15:11:54 · 3397 阅读 · 0 评论 -
机器学习算法---回归算法
回归算法在大部分机器学习课程中,回归算法都是介绍的第一个算法。原因有两个:一.回归算法比较简单,介绍它可以让人平滑地从统计学迁移到机器学习中。二.回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习那些强大的算法。回归算法有两个重要的子类:即线性回归和逻辑回归。线性回归就是我们前面说过的房价求解问题。如何拟合出一条直线最佳匹配我所有的数据?一般使用“最小二乘法”来求解。“最小二乘法”的思...转载 2018-05-21 14:51:16 · 852 阅读 · 0 评论 -
机器学习笔记
机器学习笔记 无监督学习 监督学习 分类学习 1.线性分类器 是一种假设特征与分类结果存在线性关系的模型。这个模型通过累加计算每个维度的特征与各自权重的乘积来帮助决策。 2.支持向量机 使用不同颜色的直线作为线性分类的边界。 根据训练样本的分布,搜索所有可能的线性分类器中最佳的那个。 3.朴素贝叶斯 会单独考量每一维度特征被分类的条件概率,进而综合这些概率并对...原创 2018-05-21 09:49:59 · 194 阅读 · 0 评论 -
梯度下降求解逻辑回归
我们将建立一个逻辑回归模型来预测一个学生是否被大学录取。假设你是一个大学系的管理员,你想根据两次考试的结果来决定每个申请人的录取机会。你有以前的申请人的历史数据,你可以用它作为逻辑回归的训练集。对于每一个培训例子,你有两个考试的申请人的分数和录取决定。为了做到这一点,我们将建立一个分类模型,根据考试成绩估计入学概率。#三大件import numpy as npimport pandas as ...原创 2018-04-13 17:14:25 · 416 阅读 · 0 评论 -
default过滤器
使用方式'{{ value | default('默认值')}}'。如果Value 这个‘key’不存在,那么就会使用‘default’过滤器提供的默认值。如果你想使用类似于‘python’中判断某个值是否为false(例如:none,空字符串、空列表、空字典),那么就必须传递另外一个参数‘{{value | default ('默认值',boolean = True)}}’可以使用‘or’来替代...原创 2018-04-19 11:53:42 · 892 阅读 · 0 评论 -
python OS的相关函数
在最近的开发项目的过程中,遇到了文件及文件夹的相关操作,自己整理了一下,方便查阅!相关函数里表1 )os.sep 更改操作系统中的路径分隔符。2 )os.getcwd()获取当前路径,这个在Python代码中比较常用。3 )os.listdir() 列出当前目录下的所有文件和文件夹。4 )os.remove() 方法可以删除指定的文件。5 )os.system() 方法用来运行shell命...原创 2018-04-13 14:30:47 · 224 阅读 · 0 评论 -
K-临近算法
一、kNN算法的工作原理官方解释:存在一个样本数据集,也称作训练样本集,并且样本中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系,输入没有标签的新数据后,将新数据的每个特征与样本集中的数据对应的特征进行比较,然后算法提取样本集中特征最相似的数据(最近邻)的分类标签。一般来说,我们只选择样本集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数,最后,选择...原创 2018-04-12 17:15:59 · 193 阅读 · 0 评论 -
Scrapy入门教程
1、在cmd中创建Scrapy项目工程。 scrapy startproject tutorial H:\python\scrapyDemo>scrapy startproject tutorialNew Scrapy project 'tutorial', using template directory 'f:\\python27\\lib\\site-packages\\scrapy...原创 2018-04-11 14:46:05 · 270 阅读 · 0 评论 -
Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
问题描述当前环境win10,python_3.6.1,64位。 在windows下,在dos中运行pip install Scrapy报错:解决方案http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载twisted对应版本的whl文件(如我的Twisted‑17.5.0‑cp36‑cp36m‑win_amd64.whl),cp后面是python...转载 2018-04-11 10:24:02 · 248 阅读 · 0 评论 -
机器学习算法---支持向量机
SVM(支持向量机)支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。支持向量机算法从某种意义上来说是逻辑回归算法的强化:通过给予逻辑回归算法更严格的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是如果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。但是,通过跟高斯“核”的结合,支持向量机可以表达出非常复杂的分类界线,从而达成很好的的...转载 2018-05-21 16:30:38 · 1676 阅读 · 0 评论 -
机器学习算法---聚类算法
聚类算法前面的算法中的一个显著特征就是我的训练数据中包含了标签,训练出的模型可以对其他未知数据预测标签。在下面的算法中,训练数据都是不含标签的,而算法的目的则是通过训练,推测出这些数据的标签。这类算法有一个统称,即无监督算法(前面有标签的数据的算法则是有监督算法)。无监督算法中最典型的代表就是聚类算法。让我们还是拿一个二维的数据来说,某一个数据包含两个特征。我希望通过聚类算法,给他们中不同的种类打...转载 2018-05-21 16:38:31 · 289 阅读 · 0 评论 -
lxml解析html代码和文件
lxml是一个 HTML/XML的解析器,主要的功能是如何解析和提取HTML/XML数据。lxml和正则一样,也是用C实现的,是一款高性能的 Python HTML/XML解折,我们可以利用之学习的Xpath语法,来快速的定位特定元素以及节点信息。lxmlpython官方文档:http://hxmlde/indexhtml要安装C语言库,可使用pip安装 :pip install lxml...原创 2018-12-26 17:59:44 · 3187 阅读 · 1 评论 -
生成Excel表-python
#coding: utf-8import xlsxwriterworkbook = xlsxwriter.Workbook('chart.xlsx') #创建excel文件worksheet = workbook.add_worksheet() #创建一个工作表对象chart = workbook.add_chart({'type':'column'}) #创建一个图表对象#定义数...原创 2018-11-28 16:32:41 · 236 阅读 · 0 评论 -
两行数据进行对比-python
#!/usr/bin/pythonimport difflibtext1 = """text1: #定义字符串1This module provides classes and functions for comparing sequences.including HTML and context and unified diffs."""text1_lines = text1.s...原创 2018-11-28 16:29:38 · 12014 阅读 · 0 评论 -
机器学习的思考–计算机的潜意识
最后,作者想谈一谈关于机器学习的一些思考。主要是作者在日常生活总结出来的一些感悟。回想一下我在节1里所说的故事,我把小Y过往跟我相约的经历做了一个罗列。但是这种罗列以往所有经历的方法只有少数人会这么做,大部分的人采用的是更直接的方法,即利用直觉。那么,直觉是什么?其实直觉也是你在潜意识状态下思考经验后得出的规律。就像你通过机器学习算法,得到了一个模型,那么你下次只要直接使用就行了。那么这个规律你是...转载 2018-05-24 10:28:41 · 464 阅读 · 0 评论