Python
文章平均质量分 83
分享Python核心编程、爬虫、机器学习等方向的经验总结与心得体会。
padluo
这个作者很懒,什么都没留下…
展开
-
Selenium 操作内部滚动条的方法
在爬取网页数据的过程中,有时候需要操作网页中的滚动条来获取完整的数据。Selenium 可以操作页面中没有完全显示的内容,当页面中有内容在当前可见范围之外时,可以使用滚动操作将其滚动到视图中。在浏览器中,滚动条有窗口滚动条和内部滚动条两种,窗口滚动条是指浏览器窗口右侧或底部的滚动条,通过拖动滚动条,可以使整个窗口中的内容上下或左右移动,用于滚动整个页面的内容,可以通过鼠标滚轮、键盘上下左右箭头、滚动条本身的拖动等方式进行操作。内部滚动条,在网页内部特定区域中垂直或水平移动,用于滚动该区域内的内容。原创 2024-08-05 08:58:51 · 722 阅读 · 0 评论 -
用 pyinstaller 生成传参数的可执行文件
文章目录安装 pyinstallermain 函数处理将 py 文件打包为可执行文件安装 pyinstaller直接用 pip install pyinstaller 安装即可,安装时遇到如下错误: module 'setuptools.build_meta' has no attribute '__legacy__',采用 pip install --no-use-pep517 pyinstaller 解决,参考 https://github.com/pypa/setuptools/issues/16原创 2020-12-03 23:46:38 · 943 阅读 · 0 评论 -
Python学习笔记11_IO编程
Input和Output,Input Stream就是数据从外面(磁盘、网络)流进内存,Output Stream就是数据从内存流到外面去。同步和异步,区别在于是否等待IO执行的结果,比如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可磁盘接收这100M数据可能需要10秒。同步IO是CPU等待,即程序暂停执行后续代码,等100M的数据在10秒后写入磁盘,再往下执行,异步IO是原创 2020-03-08 15:08:29 · 262 阅读 · 0 评论 -
Python学习笔记10_错误、调试和测试
错误处理try...except...finally...,不同类型的错误由不同的except语句块处理,如果没有错误发生,可以在except语句块后面加一个else,没有错误发生时,执行else语句,finally语句如果有,一定会被执行(可以没有finally语句)。try: print('try...') r = 10 / int('2') print('result:原创 2020-03-08 15:08:16 · 456 阅读 · 0 评论 -
Python学习笔记09_面向对象编程Object Oriented Programming
面向对象编程面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。面向对象的程序设计把计算机程序视为一组对象的集合,每个对象可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。# 面向过程<<< std1 = {'name': 'Michael', 'score': 98}<<< std2 = {'name': 'Bob', '原创 2020-03-08 15:08:00 · 332 阅读 · 0 评论 -
Python学习笔记06_高级特性
切片L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3.如果第一个索引是0,还可以省略L[:3]L[-2:],表示倒数第二个元素到末尾。L[-2:-1],表示倒数第二个元素到倒数第一个元素,但不包括倒数第一个元素。L[:10:2],前10个数,每两个取一个。L[::5],所有数,每5个取一个。L[:],原样复制一个list。tuple切片,唯一区别是tuple不可变,操作原创 2020-03-08 15:07:45 · 231 阅读 · 0 评论 -
Python学习笔记08_模块
模块在Python中,一个.py文件就成为一个模块(Module)。为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。每一个包目录下面都会有一个__init__.py的文件,这个文件时必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以说空文件,也可以有Python代码,因为__init__.py本身就是一个模原创 2020-03-08 15:12:57 · 237 阅读 · 0 评论 -
Python学习笔记07_函数式编程
高阶函数Higher-order function变量可以指向函数,即:函数本身也可以赋值给变量。函数名也是变量。把函数作为参数传入,这样的函数称为高阶函数。map/reducemap()函数,接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。<<< def f(x): return x *原创 2020-03-08 15:12:46 · 357 阅读 · 0 评论 -
Python学习笔记05_函数
调用函数abs(), max(), int(), float(), str(), bool()定义函数使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后在缩进块编写函数体。函数体内部语句执行到return时,执行完毕并将结果返回,如果没有return语句,也会返回结果None,return None可以简写为return。空函数,可以用来作为占位符,比如现在还没想好怎么写函数原创 2020-03-08 15:06:18 · 331 阅读 · 0 评论 -
Python学习笔记04_dict和set
dict空dict,{}{key1:value1, key2:value2, ……}避免key不存在的错误 <<< 'ele' in dict <<< d.get('key') # 如果key不存在返回None <<< d.get('key', -1) # 如果key不存在返回-1 删除key,pop(key),对应的value也会从dict中删除。dict内部存放的顺序和key放原创 2020-03-08 15:05:57 · 289 阅读 · 0 评论 -
Python学习笔记03_条件判断和循环
if语句if语句的完整形式,if语句从上往下判断,如果在某根判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。 if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> else: <执行4> if判断条件的简写,只要x是非零数值,非空字符串,非空list,就判原创 2020-03-08 15:05:38 · 266 阅读 · 0 评论 -
Python学习笔记02_list和tuple
list常用函数len(),获得list元素的个数。append(),追加元素到末尾。insert(i,elem),把元素插入到指定的位置。pop(),删除list末尾的元素。pop(i),删除指定位置的元素。要把某个元素替换成别的元素,可以直接赋值给对应的索引位置。list里面元素的数据类型可以不同,list元素也可以说另一个list。空的list,[],长度为0.tuplet原创 2020-03-08 15:05:20 · 264 阅读 · 0 评论 -
Python学习笔记01_Python基础
表达式常量,数字和字符串,字符串用单引号或双引号。变量,内存空间的标记。变量命名规定,字母或下划线开头(一般字母开头),不用数字开头,大小写敏感。保留字。赋值语句=。数值表达式Numeric Expressions,操作符Operator。整数除法,python2截取整数部分。如,9/2,python2是4,python3是4.5。类型“+”,对于整数和字符串不一样type(),原创 2020-03-08 15:04:54 · 299 阅读 · 0 评论 -
macOS搭建Python的cx_Oracle开发环境
macOS搭建Python的cx_Oracle开发环境的过程总结。环境与版本,OS: macOS High Sierra 10.13.6Oracle Instant Client: Version 12.2.0.1.0 (64-bit) Updated 15-Jan-2018安装Oracle Instant Client,Oracle网站的下载需要注册一个账户,根据macOS版本选择Or...原创 2019-02-13 22:16:43 · 663 阅读 · 0 评论 -
Series和DataFrame的数据取值与选择
数据取值与选择 NumPy数据取值的方法,包括取值操作(如arr[2, 1])、切片操作(如arr[:, 1:5])、掩码操作(如arr[arr > 0])、花哨的索引操作(如arr[0, [1, 5]]),以及组合操作(如arr[:, [1, 5]])。在NumPy的二维数组里,data[0]返回第一行,而在DataFrame中,data['col0']返回第一列。import numpy...原创 2018-07-01 15:16:42 · 28885 阅读 · 0 评论 -
Windows下Eclipse+PyDev环境配置
用了一段时间的PyCharm,内存占用有点大,略卡,尝试了一下Eclipse+PyDev,这篇文章是在使用过程中个性化配置的一些总结。PyDev的版本安装完pydev插件后,有时我们会发现在Window->Preferences下没有pydev项,这是因为我们安装了与Eclipse/JDK不匹配的插件版本。Eclipse、JDK、PyDev版本的对应关系如下: - Eclipse 4.5, Jav原创 2020-03-08 15:08:48 · 258 阅读 · 0 评论 -
Python数据挖掘与机器学习_通信信用风险评估实战(4)——模型训练与调优
系列目录:Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据Python数据挖掘与机器学习_通信信用风险评估实战(2)——数据预处理Python数据挖掘与机器学习_通信信用风险评估实战(3)——特征工程训练数据拆分把训练数据拆分为训练集和交叉验证集,比例为7:3。x_train和y_train用来训练模型,x_test和y_test用来交叉验证。data_train = data_原创 2017-09-09 18:23:19 · 3131 阅读 · 3 评论 -
Python数据挖掘与机器学习_通信信用风险评估实战(3)——特征工程
系列目录:Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据Python数据挖掘与机器学习_通信信用风险评估实战(2)——数据预处理有这么一句话在业界广为流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。数据说明数据使用经数据预处理,合并后的宽表train_user_comm_basic。宽表(train_user_comm_basic)的单特征分析与处理遍历原创 2017-08-26 14:20:06 · 1435 阅读 · 0 评论 -
Python数据挖掘与机器学习_通信信用风险评估实战(2)——数据预处理
系列目录:Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据数据说明通过对读取数据的实践,下面是数据集文件对应读取后的DataFrame说明。 数据文件 DataFrame DataTech_Credit_Train_Communication1.txt train_comm DataTech_Credit_Train_User1 train_user D原创 2017-08-19 13:47:51 · 1711 阅读 · 0 评论 -
Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据
案例及数据说明本案例以Data Tech 2017浙江大数据建模与创新应用大赛的模型挑战赛选题三: 通信信用风险评估为例说明。此次比赛还在进行中,开放了浙江移动及相关企业脱敏后的数据,大家都可以拿来练练手。本选题用到的数据包括公共数据集、用户通话数据、违约行为数据。 训练集数据:用户通话数据(201703-201706),违约行为数据(201707),公共数据-基本信息(201703-201706原创 2019-04-15 15:26:23 · 4415 阅读 · 0 评论 -
搜狗词库爬虫(2):基础爬虫框架的运行流程
项目的Github地址:https://github.com/padluo/sogouSpider各模块对应的内容如下:getCategory.py,提取词库分类ID和名字,以字典形式返回。SpiderMan.py,爬虫调度器。UrlManager.py,URL管理器。HtmlDownloader.py,网页下载器。HtmlParser.py,网页解析器。DataOutput.py,数据存储器。So原创 2017-09-24 16:03:58 · 866 阅读 · 0 评论 -
搜狗词库爬虫(1):基础爬虫架构和爬取词库分类
基础爬虫架构基础爬虫框架主要包括五大模块:爬虫调度器、URL管理器、网页下载器、网页解析器、数据存储器。爬虫调度器:启动、执行、停止爬虫,统筹其他模块的协调工作。URL管理器:管理已爬取的URL和未爬取的URL这两个数据,提供获取新URL链接的接口。网页下载器:将URL管理器提供的一个URL对应的网页下载下来,存储为字符串,这个字符串传送给网页解析器进行解析。网页解析器:从网页下载器中获取已经下载的原创 2017-09-22 20:42:56 · 2109 阅读 · 0 评论 -
Python爬虫实战之爬取链家广州房价_04链家的模拟登录(记录)
问题引入开始链家爬虫的时候,了解到需要实现模拟登录,不登录不能爬取三个月之内的数据,目前暂未验证这个说法是否正确,这一小节记录一下利用浏览器(IE11)的开发者工具去分析模拟登录网站(链家)的内部逻辑过程,花了一个周末的时间,部分问题暂未解决。思路介绍利用浏览器(IE11)的开发者工具,启用网络流量捕获,在调试之前,先做一些配置上的准备工作:清除旧的cookie和缓存,禁用跳转后清除日志(Firef原创 2017-03-03 19:42:03 · 3180 阅读 · 0 评论 -
Python爬虫实战之爬取链家广州房价_03存储
问题引入系列目录:Python爬虫实战之爬取链家广州房价_01简单的单页爬虫Python爬虫实战之爬取链家广州房价_02把小爬虫变大这一小节主要讲一下前面一直没有实现的存储,存储主要分两大类:文件和数据库。结合这次爬虫的数据量及后期分析的需要,这次主要介绍SQLite。思路介绍通过对SQLite数据库的封装,处理多线程的写入。Python的DB-API接口主要处理Connection对象和Curso原创 2017-03-02 09:01:07 · 2062 阅读 · 0 评论 -
Python爬虫实战之爬取链家广州房价_02把小爬虫变大
问题引入上一小节简单介绍了单个页面的爬取,涉及到请求和解析两个模块,其中请求使用urllib,解析使用BeautifulSoup,爬取了链家的单个页面,处理了我们想要的页面元素,输出到控制台。我们通过浏览器上网打开页面,来源有两种,一种是已知的地址,如Google,另一种是通过前面爬下来的页面中获取入口,如a标签中的href属性值。通过爬虫自动化获取浏览器可以获取的数据,要模拟浏览器的行为,获取更多原创 2017-02-24 09:38:58 · 1124 阅读 · 0 评论 -
Python爬虫实战之爬取链家广州房价_01简单的单页爬虫
思路介绍爬取链家广州所有小区信息、在售楼盘及所有历史成交记录,对于超过100个页面的信息,采用曲线爬取的方式,先爬每个小区,然后爬每个小区的在售楼盘及成交记录,后期将进行相应更新,进一步研究Cookie的使用、Proxy(代理)的设置、模拟登录、验证码识别等问题。环境基于Python 2.7。请求这里我使用的package是urllib和urllib2,这里列一下爬取过程中需要注意的一些问题。原创 2017-02-22 15:56:35 · 2567 阅读 · 0 评论