Python学习
Python学习
WoLykos
这个作者很懒,什么都没留下…
展开
-
Python爬虫实战——反爬策略之代理IP【无忧代理】
一般情况下,我并不建议使用自己的IP来爬取网站,而是会使用代理IP。原因很简单:爬虫一般都有很高的访问频率,当服务器监测到某个IP以过高的访问频率在进行访问,它便会认为这个IP是一只“爬虫”,进而封锁了我们的IP。那我们爬虫对IP代理的要求是什么呢?1、代理IP数量较多,可以减低被封锁的概率;2、IP生命周期较短,因为没钱o(´^`)o。接下来,就讲一下从购买代理IP到urllib...原创 2019-12-23 16:28:33 · 1949 阅读 · 0 评论 -
Python爬虫实战—— Request对象之header伪装策略
在header当中,我们经常会添加两个参数——cookie 和 User-Agent,来模拟浏览器登录,以此提高绕过后台服务器反爬策略的可能性。User-Agent获取User-Agent可通过随机发送请求并进入开发者工具来提取。在这里,我也已经采集了一堆User-Agent,并写成一个能随机获取User-Agent的user_agent.py文件(可直接使用):import rando...原创 2019-12-21 09:30:49 · 2835 阅读 · 3 评论 -
Python爬虫进阶——JsonPath使用案例
如果一个网站采用前端渲染,那么这个网站的前端会访问后端的一些接口,然后拿到后端向前端返回的数据(一般都是Json类型,Json对象的本质其实是一个bytes字节流,但我们可以通过转码的方式,把它转成str),再把Json数据交给JS,JS对其进行解析,最终渲染页面。这就是前端渲染的一个流程。很多商城网站都会这样做,因为可以减缓服务器的压力。那对于我们爬虫开发来说,如果我们拿到了后端向前端返...原创 2019-12-20 14:27:00 · 648 阅读 · 0 评论 -
Python爬虫基础——XPath语法的学习与lxml模块的使用【CSDN】
XPath与正则都是用于数据的提取,二者的区别是:正则:功能相对强大,写起来相对复杂;XPath:语法简单,可以满足绝大部分的需求;所以,如果你可以根据自己的需要进行选择。一、首先,我们需要为Google浏览器配置XPath插件:请自行学习,效果如下:二、XPath的语法:注意:XPath的索引从1开始。三、XPath的案例:一级分类://h3[@class="c...原创 2019-12-26 14:03:09 · 1094 阅读 · 0 评论 -
Python爬虫基础——正则表达式
说到爬虫,不可避免的会牵涉到正则表达式。因为你需要清晰地知道你需要爬取什么信息?它们有什么共同点?可以怎么去表示它们?而这些,都需要我们熟悉正则表达,才能更好地去提取。先简单复习一下各表达式所代表的意思:案例:定义密码的正则表达式:英文字母开头,可以包括数字、大小写英文字母、下划线,6-16位。表达式为:password_pattern='^[a-zA-Z]{1}[a-zA...原创 2019-12-19 22:39:42 · 869 阅读 · 0 评论 -
Python爬虫基础——HTML、CSS、JavaScript、JQuery网页前端技术
HTML介绍HTML是Hyper Text Markup Language(超文本标记语言)的缩写HTML不是一种编程语言,而是标记语言HTML的语法双标签:<标签名></标签名>单标签:<标签名/>元素和属性<标签名 属性名=属性值>元素</标签名><标签名 属性名=属性值/>HTML结构<!D...原创 2019-12-19 20:14:44 · 1681 阅读 · 0 评论 -
Python——面向对象的疑难点【类】
相信用Python写def函数大家都信手拈来了,但Python作为面向对象的编程语言,怎么能浪费呢?那问题来了。什么是类呢?什么是实例?什么是对象?方法是什么??属性又是什么???继承?封装?多态?对于这些的疑问,在这里统统都不会讲到,~~毕竟你完全可以轻易 Google 到,~~如果有疑问就在评论区提出吧。在这里,我只总结涉及到类的一些偏僻小疑点:1、在Python3中,所有类都继承于一...原创 2019-12-19 11:36:16 · 342 阅读 · 0 评论 -
世界,你好!
“Hello World”,这大概是每个程序员最熟悉的一句话了吧。每每我们进入一种语言的世界,第一句话就是向它问好。仔细想来,也许这就是我们的一种态度,一种出于习惯的礼貌,或者说是一种出于礼貌的问候吧。“世界,你好!”。短短的一句话,意味着从那一刻起,我们便正式进入了某一种语言的世界,所以也可以说是一种庄严的仪式。我们带着满载的善意,于是我们也希望被这个世界善待。 话有点多了,然而**还...原创 2019-09-26 15:41:14 · 323 阅读 · 0 评论 -
Jupyter Notebook默认工作路径的修改
相信每一个学习Python的童鞋,都尝试过Jupyter Notebook,所以我也就不多介绍,真的还不错哎这软件。不过美中不足的,就是它的默认工作路径,每次打开都是系统盘的Administrator目录,什么奇奇怪怪的都在里面。作为强迫症患者的我当然不允许这样子的事发生啦~!于是上网寻求帮助,但教程良莠不齐,或是一笔带过,或是挂一漏万,着实浪费了我一个小时。所以在这里,我记录下了完...原创 2019-04-12 17:53:00 · 184 阅读 · 0 评论 -
Python——pyHook监听鼠标键盘事件
pyHook包为Windows中的全局鼠标和键盘事件提供回调。底层C库报告的信息包括事件的时间,事件发生的窗口名称,事件的值,任何键盘修饰符等。而正常工作需要pythoncom等操作系统的API的支持。 先链上一篇《pyHook和pythoncom的安装》。 然后开始讲pyHook的使用。关于pyHook的使用,网上现存的大多教程如下:import pythonco...原创 2019-03-05 16:41:00 · 933 阅读 · 0 评论 -
pyHook和pythoncom的安装
pyHook包为Windows中的全局鼠标和键盘事件提供回调。Python应用程序为用户输入事件注册事件处理程序,例如鼠标左键,鼠标左键,按键等,并设置键盘和/或鼠标挂钩。底层C库报告的信息包括事件的时间,事件发生的窗口名称,事件的值,任何键盘修饰符等。 1、习惯性的——我们会直接在命令行敲下pip install pyHook进行安装,然而......报错了。。。。。红字说找不到匹配...原创 2019-03-05 14:52:00 · 590 阅读 · 0 评论 -
thread/threading——Python多线程入门笔记
1 什么是线程?(1)线程不同于程序。线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制; 多线程类似于同时执行多个不同程序。(2)线程不同于进程。每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口。(3)线程的优点:可以把占据长时间的程序中的任务放到后台去处理; 用户界面可以更加吸引人,如弹出一个进度条来显示处理的进度等; 程序的运行速度...原创 2019-02-12 16:48:00 · 169 阅读 · 0 评论 -
tkinter——GUI设计实操
1、创建root:from tkinter import *root = Tk()root.title('GUI设计')# root.attributes("-alpha", 0.3)窗口透明度70 %# w, h = root.maxsize()# root.geometry('%dx%d+%d+%d' % (1675, 976, -14/2, 0/2)) # 初始大小和屏幕...原创 2019-01-29 15:47:00 · 414 阅读 · 0 评论 -
tkinter进阶版——ttk
很长的一段时间里,我都是用tkinter进行GUI设计的,还写过一篇《tkinter模块常用参数》。但后来慢慢地觉得,这个tkinter真的是有点丑啊。于是,找到了现在的ttk。ttk是什么呢?在我看来,它应该算是tkinter的一个进阶组件,为的,就是完善tkinter的一些功能。通俗点说,tkinter有的,ttk也有;tkinter没有的,ttk也有。而且!这两人的办法和属性功...原创 2019-01-15 13:59:00 · 1003 阅读 · 0 评论 -
tkinter之grid布局管理器详解
在很久之前,我发过一篇《tkinter模块常用参数》,里面已经几乎涵盖了tkinter的大部分教程。好吧,其实也就是上一篇而已啦。所谓布局,就是指控制窗体容器中各个控件(组件)的位置关系。tkinter 共有三种几何布局管理器,分别是:pack布局,grid布局,place布局: “Grid”兼具功能,灵活性和易用性,以及它与当今布局的自然匹配(依赖于小部件的对齐)使其成为一般用途的最...原创 2019-01-15 13:40:00 · 716 阅读 · 0 评论 -
tkinter模块常用参数(python3)
1、使用tkinter.Tk() 生成主窗口(root=tkinter.Tk())root.title('标题名') 修改框体的名字,也可在创建时使用className参数来命名;root.resizable(0,0) 框体大小可调性,分别表示x,y方向的可变性;root.geometry('250x150') 指定主框体大小;root.columnco...原创 2018-11-12 10:43:00 · 734 阅读 · 0 评论 -
ctypes库调用dll的个人见解
最近着手开发一个小东西涉及到了API接口的知识点,第一次使用到了ctypes库,在网上找了一大圈,基本都是讲add.dll之后就没了。就像下面这个:from ctypes import *dll = CDLL(“test.dll”) # 调用 test.dlldll.add(10, 30) # 调用 add 函数 而我需要的读出一张ACR122U卡的卡号,于是愚笨地写下...原创 2018-11-05 11:32:00 · 145 阅读 · 0 评论 -
慕学在线网1.1_注册功能(1)
1、拷贝register.html到templates中2、初步视图,用户以get方式,直接返回注册页面:# users/views.pyclass RegisterView(View): '''用户注册''' def get(self,request): return render(request,'register.html')3、路由设计:...原创 2018-10-15 14:02:00 · 225 阅读 · 0 评论 -
注册时填错验证码却没有提示???以及 403错误。
在编写完善注册模块的后台逻辑时,我又遇到了一个毫无征兆的错误: 就是我在调试的时候,故意填错验证码,可点注册后竟然没有提示?页面刷新了一下又回来了。。。。 最后才知道,其实是因为我们的html没有配置完,而且这个错误我已经不是第一次犯了。。。。。。。解决办法: 在填写form时,我们一定要定义method和action地址: OK,再运行一下,救命!原问题是...原创 2018-10-15 10:17:00 · 361 阅读 · 0 评论 -
慕学在线网1.0_登录功能(2)
1、在users的views.py中编写login的视图:from django.shortcuts import renderfrom django.contrib.auth import authenticate,login# Create your views here.def user_login(request): if request.method == 'P...原创 2018-09-29 16:44:00 · 278 阅读 · 0 评论 -
慕学在线网1.0_登录功能(1)
从这里开始,就可以说是正式地进入慕学在线网这个项目了~~~~ 1、将html文件中的index.html拷贝到templates中2、新建用来存放静态文件的static(directory)目录,并把css,images,img,js,media拷贝到目录里3、在settings.py中设置路径:STATICFILES_DIRS = ( os.path.join(BAS...原创 2018-09-28 16:36:00 · 423 阅读 · 0 评论 -
慕学在线网0.5_xadmin的全局配置
全局配置包括了以下修改:开启主题功能; 修改左上角的“django Xadmin”和主界面的“我的公司”; App菜单收叠; App名字修改(汉化)。1、把全站的配置放在users\adminx.py中:from xadmin import views# 创建xadmin的最基本管理器配置,并与view绑定class BaseSetting(object): # ...原创 2018-09-25 15:48:00 · 126 阅读 · 0 评论 -
慕学在线网0.4_xadmin后台管理
admin是基于Django开发的后台管理框架,方便,快捷,而且简单; 而xadmin就相当于admin的升级版,更加强大。 1、安装xadmin(源码安装方式) 教程PS:- 卸载pip安装的xadminpip uninstall xadmin- 过教程途中,看自身情况可能还需要自行下载其他的依赖库,如下:pip install django-formtoolspip ...原创 2018-09-21 15:54:00 · 180 阅读 · 0 评论 -
慕学在线网0.3_四个model
1、四个model完整代码:# users/models.pyfrom datetime import datetimefrom django.db import modelsfrom django.contrib.auth.models import AbstractUserclass UserProfile(AbstractUser): gender_choic...原创 2018-09-19 10:28:00 · 229 阅读 · 0 评论 -
TypeError: __init__() missing 1 required positional argument: 'on_delete'
报错的原因呢,就是在设计model时我弄了个外键,然后就报错了。。。 不难看出,它是想让我们在表与表关联时添加一个on_delete参数解决办法:如其所愿,加上on_delete=models.CASCADE 趁机整理一下on_delete各参数的意思先:on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为on...原创 2018-09-18 15:43:00 · 112 阅读 · 0 评论 -
慕学在线网0.2_users表设计(2)
接着上一篇,我们继续对users表进行完善。其中包括邮箱验证码(EmailVerifyRecord)和轮播图(PageBanner)两个model。 1、编写“models.py”:from datetime import datetimeclass EmailVerifyRecord(models.Model): code = models.CharField(max...原创 2018-09-13 13:46:00 · 90 阅读 · 0 评论 -
慕学在线网0.2_users表设计(1)
1、Django App设计:users-用户管理(任何web中,users表都是第一个被设计的) course-课程管理 organization-机构和教师管理 operation-用户操作管理(最高一层) 2、新建"users":Task—>startapp users3、users表的扩展设计:编写models:from django.contrib.au...原创 2018-09-13 10:23:00 · 103 阅读 · 0 评论 -
慕学在线网0.1_前期准备
事先说明:此慕学在线网系列随笔仅为我个人学习之笔记。 所以写法简洁,语言简朴,如果哪位朋友有兴趣却没看懂的欢迎下方提问。 1、创建独立虚拟环境 教程2、新建Django项目以及各种设置 教程3、Navicat新建数据库mxonline(字符集选择UTF8,排序规则为utf8_general_ci)4、生成表:Tools—>Run manage.py Task—>...原创 2018-09-12 16:00:00 · 114 阅读 · 0 评论 -
留言板0.4_model中的数据库(2)
今天就讲讲:如何将后台数据呈现在HTML页面中,以及url配置时的两点技巧吧。1、首先在“views.py”中提取出后台数据def getform(request): message = None all_messages = UserMessage.objects.filter(name='bobbytest') if all_messages: # 和数组一...原创 2018-09-11 16:26:00 · 173 阅读 · 0 评论 -
留言板0.4_model中的数据库(1)
1、先在数据库中加入一天测试数据先2、在model的“views”中载入数据库和model的类import pymysqlfrom .models import UserMessage3、读取数据库中的数据def getform(request): all_messages = UserMessage.objects.all() # 读出全部数据 for me...原创 2018-09-10 19:42:00 · 145 阅读 · 0 评论 -
留言板0.3_models设计
1、编写“message.models”:class UserMessage(models.Model): name = models.CharField(max_length=20, null=True, blank=True, default="", verbose_name="用户名") email = models.EmailField(verbose_name="邮...原创 2018-09-06 19:44:00 · 98 阅读 · 0 评论 -
the database needs something to populate existing rows.
这是我在使用Django进行models编写时的一个错误。解决办法:为其指定一个默认值即可 object_id = models.CharField(max_length=50, default="", primary_key=True, verbose_name="主键")...原创 2018-09-06 19:35:00 · 1180 阅读 · 0 评论 -
留言板0.2_小试牛刀
1、将“留言板.html”移至“templates”2、“static”—>new—>"css"(Directory)—>new—>"style"(Stylesheet)3、将“留言板.html”中的样式(style之间的代码)copy到“style.css”,删去style标签和制表符4、在“留言板.html”中输入<link rel="stylesheet"...原创 2018-09-06 14:26:00 · 162 阅读 · 0 评论 -
留言板0.1_前期准备
1、安装破解Python3.4(电脑比较辣鸡,装不了更高的),pycharm,mysql for windows, navicat for mysql2、命令行安装vir库(pip install virtualenvwrapper-win)创建虚拟环境(mkvirtualenv dilis_vir) 设置环境变量即可自由选择路径 进入虚拟环境(workon dilis_vir) ...原创 2018-09-05 15:58:00 · 126 阅读 · 0 评论 -
WOE和IV
woe全称是“Weight of Evidence”,即证据权重,是对原始自变量的一种编码形式。进行WOE编码前,需要先把这个变量进行分组处理(离散化) 其中,pyi是这个组中响应客户(即模型中预测变量取值为“是”或1的个体,也叫坏样本)占所有样本中所有响应客户的比例,pni是这个组中未响应客户(也叫好样本)占样本中所有未响应客户的比例; #yi是这个组中响应客户的数量,#ni...原创 2018-09-04 15:35:00 · 199 阅读 · 0 评论 -
Python 数据分析基础小结
一、数据读取1、读写数据库数据读取函数:pandas.read_sql_table(table_name, con, schema=None, index_col=None, coerce_float=True, columns=None) pandas.read_sql_query(sql, con, index_col=None, coerce_float=True) pand...原创 2018-09-04 10:22:00 · 522 阅读 · 0 评论 -
分类模型构建
分类模型构建 分类是指构造一个分类模型,输入样本的特征值,输出对应的类别,将每个样本映射到预先定义好的类别中。分类模型若建立在已有类标记的数据集上,则属于有监督学习。在实际应用场景中,分类算法被用于行为分析,物品识别,图像检测等。模块 函数 算法名称 linear_model LogisticRegression 逻辑斯蒂回归 svm SVC ...原创 2018-08-31 16:31:00 · 2423 阅读 · 0 评论 -
回归模型构建
回归模型构建模块 函数 算法名称 简称 linear_model LinearRegression 线性回归 LR svm SVR 支持向量机回归 SVM neighbors KNeighborsRegressor 最近邻回归 KNN tree DecisionTreeRegressor 回归决...原创 2018-08-31 14:57:00 · 454 阅读 · 0 评论 -
sklearn——数据集调用及应用
忙了许久,总算是又想起这边还没写完呢。 那今天就写写sklearn库的一部分简单内容吧,包括数据集调用,聚类,轮廓系数等等。自带数据集API数据集函数 中文翻译 任务类型 数据规模 load_boston Boston房屋价格 回归 506*13 fetch_california_housing 加州住房 回归 2064...原创 2018-08-31 10:45:00 · 1035 阅读 · 0 评论 -
数据处理——数据集划分
数据集划分一般在日常工作中我们会将数据集拆分为训练集(train_set)和测试集(test_set)训练集:一般用于训练模型,需要尽可能保证训练的数据具有代表性。 测试集:用于测试模型,检测模型的性能(包括了运行时间,模型的效果等)trian_test_split(*arrays,train_size,test_size,ramdom_state)*arrays:表示需要进行划...原创 2018-08-31 09:57:00 · 610 阅读 · 0 评论