strip

pymysql

主宰稳场 提交于 2020-04-27 15:35:00
python代码连接mysql数据库 有bug(sql注入的问题): # pip3 install pymysql import pymysql user =input( ' user>>: ' ).strip() pwd =input( ' password>>: ' ).strip() # 建立链接 conn= pymysql.connect( host = ' 192.168.10.15 ' , port =3306 , user = ' root ' , password = ' 123 ' , db = ' db9 ' , charset = ' utf8 ' ) # 拿到游标 cursor= conn.cursor() # 执行sql语句 sql = ' select * from userinfo where user = "%s" and pwd="%s" ' % (user,pwd) rows = cursor.execute(sql) cursor.close() conn.close() # 进行判断 if rows: print ( ' 登录成功 ' ) else : print ( ' 登录失败 ' ) 在sql语句中 --空格 就表示后面的被注释了,所以密码pwd就不验证了,只要账户名对了就行了,这样跳过了密码认证就是sql注入

Linux常见命令

走远了吗. 提交于 2020-04-27 10:26:04
cd目录切换 cd ../ 切换至上一级目录 cd ./ 切换至当前目录 ls浏览目录下的文件或者文件夹 ls ./ 查看当前目录所有的文件和目录 ls -a,--all 查看所有的文件,包括以.开头的文件 ls -A,--almost-all 列出除.及..以外的任何文件 ls -i 显示每个文件的inode号 ls -R 递归显示子目录 ls -S 根据文件大小排序 ls -t 根据修改时间排序 pwd显示当前所在的目录路径 mkdir创建目录 mkdir -m u=rwx g=rwx o=rwx file 新建目录同时设置权限 mkdir -p file1/file2/file3 创建目录的上层目录 mkdir -v file 创建目标显示过程 mkdir --help 显示帮助信息 mkdir --version 显示版本信息并退出 rm删除文件或者目录 rm -rf file递归强制删除 rm -f,--force file 强制删除,忽略不存在的文件,不提法确认 rm -i file在删除前需要确认 rm -v file 详细显示进行的步骤 cp [选项]复制文件... 源文件 目标文件 cp [选项]复制文件... 源文件 目录 cp [选项]复制文件... -t 目录 源文件 cp --backup file /tmp 为每个已存在的目标文件创建备份 cp -a=

NO.2:自学python之路------变量类型、列表、字典

人盡茶涼 提交于 2020-04-27 06:29:50
引言 本周初步认识了库,并学习了Python中各种类型的变量和常用操作。并完成了较为完善的用户与商家购物界面设计。 正文 模块:   Python有标准库和第三方库。第三方库需要安装才能使用。大量的库可以帮助我们更容易的完成复杂的操作。一般情况下,标准库被保存在了‘lib/’目录下,第三方库被保存在了‘lib/site-packages’目录下。导入一个库非常简单,例子: import os   每种模块都有很多操作,一般情况是用模块名.操作名完成某些操作,例子: os.system( ' dir ' ) # 读取目录下的文件列表,但不保存 变量类型:   整型(int),Python 3.X中整型只有int型,而在Python 2.X中整型分为int,和long,变量的类型不需定义,与Matlab中类似,但类型不可随意更改。查看变量类型,例子: x = 3 type(x)   其他类型与C++中类似,所以不再赘述。   虚数型,在Python中j表示虚数。   比特型(bytes),Python 2.X中比特型与字符型没有区别,而在Python 3.X中存在不同,它们可以互相转换,例子: x = ' 我爱中国 ' y = x.encode() # 转换为比特型 print (y) z = y.decode()) # 转换为字符型 print (z)   在日常使用Python中

爬取企查查网站中安徽省内的企业数据信息

孤街浪徒 提交于 2020-04-27 05:38:34
企查查网站中汇聚了有关注册企业的详细信息,为了更好的查询企业相关信息,本人对网站中安徽省境内的企业进行了爬取,其中遇到的问题和使用的技术如下: 1、遇到的问题:   1>企查查PC版数据只显示前500页,为了尽可能最大化爬取网站数据,本次爬取按照市级分别爬取,共计爬取安徽省境内16个市区共计80000条企业信息;   2>在爬取网站数据时,若爬取速度过快,会出现手动验证功能,为了解决手动验证,同时为了避免封号,直接采用随机更换IP代理,IP代理可以在《89免费代理》网站获取免费代理账号,网址为: http://www.89ip.cn/ ,可以一次性获取30个代理IP,如果不够用,     可以多次提取,然后构建代理池,本人试了,该网站的免费代理比西次代理和快代理网站的免费代理要好很多,如下图:      2、使用的技术:   1>请求模块:requests请求,为了避免反爬,采用随机代理,同时使用fake_useragent随机产生user-agent;   2>解析库:使用xpath和正则表达式   3>提速优化:采用多线程,同时对爬取的数据进行一次性保存,避免磁盘频繁IO; 3、核心代码如下:    import requests from lxml import etree from queue import Queue from threading import

Python之路day08-面向对象作业_实现学生选课系统

烈酒焚心 提交于 2020-04-26 17:06:13
Eva_J 老师 博客链接:   https://www.cnblogs.com/Eva-J/articles/11370946.html day06-面向对象 开发环境:   Python3.7   Windows 各文件夹说明:   bin:     start.py    #启动目录   conf:     settings.py  #配置文件,用于保存项目目录、课程、选课、以及用户等文件目录   core:        #主要代码块     main.py    # 主程序目录     authentication.py #登录认证     student.py    #学生类     manager.py   #管理员类     course.py    #课程类和公共类   db: #数据存储     course     # 课程数据,存储类型为pickle     select_course   #学生已选课程信息,存储类型为pickle     user       # 用户表,明文存储 bin 目录下: start.py conf 目录下: # !/usr/bin/python # -*- coding:utf-8 -*- # Author :wangliujun import os path = r ' E:\老男孩Python\Class_27\Class

PHP 文件的相关操作

一世执手 提交于 2020-04-26 13:30:09
文件的打开和关闭 主要是两个函数,fopen和fclose。 fopen ( string $filename , string $mode [, bool $use_include_path = FALSE [, resource $context ]] ) : resource 返回的是资源类型的数据 mode 打开模式:指的是文件打开是以写入、读取、执行等等方式 r:(只读模式)以只读方式打开,文件指针指向文件的开头部分 r+:(读写模式)以读写方式打开,文件指针指向文件的开头 w:(只写模式)以写方式打开,指针指向文件头部,如果文件不存在,会创建一个新文件,如果文件存在,文件内容会被清空 w+:(写读模式),指针指向文件头部,如果文件不存在,会创建一个新文件,如果文件存在,文件内容会被清空,可以读取 a:以追加方式打开,指针指向文件末尾(只写),如果文件不存在,会创建一个新文件 a+:以追加方式打开,如果文件存在,指针指向文件末尾,(读写)如果文件不存在,会创建一个新文件 文件的读取 可以读取单个字符、一行、整个文件、读任意长度的数据。 1、读取整个文件: 不需要对文件打开与关闭 readfile() readfile ( string $filename [, bool $use_include_path = FALSE [, resource $context ]] )

图文+视频讲解 | 物理挖洞/涂抹地形的实现

拟墨画扇 提交于 2020-04-26 13:11:40
> 终于来挖坑了!老规矩!图文+视频讲解! 效果预览 实现步骤 整体思路是先使用 PolyBool 计算多边形,接着使用 cc.PhysicsChainCollider 将多边形围起来,最后使用 cc.Graphics 将整个地形绘制出来。 引入 PolyBool PolyBool 是什么?对多边形(并集,交集,差,异或)进行运算。(Boolean operations on polygons (union, intersection, difference, xor).) 前往 https://github.com/voidqk/polybooljs 下载。并作为插件脚本。 这个仓库有个 PR 提供了一个声明文件,因为我用的是 TypeScript ,我就把它拿来改改用了。 参考这个库的示例,里面有一个 regions 三维数组记录多边形的信息。 我们也用个三维数组记录当前多边形的形状的数据,并初始化为一个长方形吧! private _regions: number[][][] = []; reset() { this._regions = [ [[-480, -320], [-480, 250], [480, 250], [480, -320]] ]; } 添加物理链条 先在场景中添加物理节点。 为这个节点初始化一些 cc.PhysicsChainCollider

python+scrapy爬虫(爬取链家的二手房信息)

倖福魔咒の 提交于 2020-04-26 06:34:55
之前用过selenium和request爬取数据,但是感觉速度慢,然后看了下scrapy教程,准备用这个框架爬取试一下。 1、目的:通过爬取成都链家的二手房信息,主要包含小区名,小区周边环境,小区楼层以及价格等信息。并且把这些信息写入mysql。 2、环境:scrapy1.5.1 +python3.6 3、创建项目:创建scrapy项目,在项目路径执行命令:scrapy startproject LianJiaScrapy 4、项目路径:(其中run.py新加的,run.py是在eclipse里面启动scrapy项目,方便调试的) 这些文件分别是: scrapy.cfg:项目的配置文件 LianJiaScrapy:该项目的python模块。之后您将在此加入代码。 LianJiaScrapy/items.py:项目中的item文件,设置对应的参数名,把抓取的数据存到对应的字段里面。(类似字典来存数据,然后可提供给后面的pipelines.py处理数据) LianJiaScrapy/pipelines.py:项目中的pipelines文件,抓取后的数据通过这个文件进行处理。(比如我把数据写到数据库里面就是在这里操作的) LianJiaScrapy/spiders/:放置spider代码的目录。(数据抓取的过程,并且把抓取的数据和items的数据一一对应) 5、创建爬虫的主文件

(转载)从Excel到python,pandas最常用36个函数

≡放荡痞女 提交于 2020-04-25 07:57:13
pandas ---从Excel到python 读书笔记 在Python中pandas库用于数据处理,我们从1787页的pandas官网文档中总结出最常用的36个函数,通过这些函数介绍如何通过Python完成数据生成和导入、数据清洗、预处理,以及最常见的数据分类,数据筛选,分类汇总,透视等最常见的操作 第1章 生成数据表 导入数据表 创建数据表 第2章 数据表检查 数据维度(行列) df.shape 数据表信息 df.info() 数据维度、列名称、数据格式和所占空间等信息 查看数据格式 df.dtypes 查看空值 df.isnull() #检查特定列空值 df['price'].isnull() 查看唯一值 #查看city列中的唯一值 df['city'].unique() 查看数据表数值 df.values 查看列名称 df.columns 查看前10行数据 df.head(3) #查看最后3行 df.tail(3) 第3章 数据表清洗 主要内容包括对空值、重复值、大小写问题、数据格式的处理。这里不包含对数据间的逻辑验证。 处理空值(删除或填充) df.dropna(how='any') df.fillna(value=0) 清理空格 #清除city字段中的字符空格 df['city']=df['city'].map(str.strip) 大小写转换 df['city']

十、str的索引、切片和str常用的操作方法(重点)

谁都会走 提交于 2020-04-24 20:15:33
1.str的索引、切片 (1)按照索引取值: s1[index] (取出来的类型都是str) 从左至右有顺序,下标,索引(标志从0开始 0123......) 比如: s1 = 'python全栈22期' s2 = s1[0] print(s2,type(s2)) #p <class 'str'> s3 = s1[2] print(s3) #t s4 = s1[-1] print(s4) #期 (2) 按照切片取值( 顾头不顾尾 ) s1[start_index : end_index+1] (第一位是0时可以省略不写) 比如: s1 = 'python全栈22期' s5 = s1[0:6] s5 = s1[:6] print(s5) #python(第一位开始,可省略不写;n是第5,要后延1位) s6 = s1[6:] print(s6) #全栈22期(一直到最后一位,最后一位可省略不写) (3)切片步长: s1[start_index : end_index+1:步长] 比如: s1 = 'python全栈22期' s7 = s1[:5:2] print(s7) #pto(与切片原理一样,加入了步长,可以隔一个输出下一个) print(s1[:]) #python全栈22期 (全部输出) (4)倒序,反向按照切片步长: s1[start_index : end