![](https://img-blog.csdnimg.cn/20210121215618107.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python
Python的学习笔记
LLLLLLLLLLLLIU
.
展开
-
验证码自动识别登录
# 1.因为用户名和密码和验证码的name都是随机的,所以我们先要获取网页源代码,#然后提取出其中的name值# 2.获取到name和once的值以后,再通过调用https://www.v2ex.com/sigin接口,把数据#通过post请求发送过去# 3.还需要使用云打码平台去自动识别验证码import requestsfrom lxml import etreefrom 反爬虫攻防实战.验证码识别.fateadm_api import recognize_captchalogin_原创 2020-12-11 18:00:06 · 471 阅读 · 0 评论 -
赶集网租房房源、户型、房源面积、价格爬取(正则表达式)
import reimport requestsdef parse_page(page_url): print(page_url) headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'} resp = requests.get(page_url,head原创 2020-12-07 10:55:41 · 200 阅读 · 0 评论 -
数据存储:Excel文件操作
import xlrdimport xlwtimport random#读取Excel文件workbook = xlrd.open_workbook("成绩表.xlsx")#获取所有的sheet名字# print(workbook.sheet_names())#根据索引获得指定的sheet对象# sheet = workbook.sheet_by_index(0)# print(sheet.name)#根据名称获取指定的sheet对象# sheet = workbook.she原创 2020-12-06 21:25:17 · 241 阅读 · 1 评论 -
数据存储:JSON字符串、CSV文件
import jsonimport csv#python对象转换成json字符串books = [ { "name":"三国演义", "price":18.8 }, { "name": "水浒传", 'price': 19.9 }]# result = json.dumps(books,ensure_ascii=False)# print(result)# print(type(result))原创 2020-12-05 20:14:19 · 440 阅读 · 0 评论 -
python selenium打开新窗口和切换页面、设置用户代理
from selenium import webdriverdriver = webdriver.Chrome(executable_path='E:\pyspiderapp\chromedriver87.exe')driver.get('https://www.baidu.com/')driver.implicitly_wait(2)driver.execute_script("window.open('https://www.douban.com/')")driver.switch_to.w原创 2020-12-04 13:10:02 · 1377 阅读 · 0 评论 -
python 正则表达式常用函数
import re# 分组# text = "shoes price is $90,shirt price is $80"# result = re.search('.+(\$\d+).+(\$\d+)',text)# print(result.group(2))# group()/group(0):匹配整个分组# group(1):匹配第一个分组# group(2):匹配第二个分组# groups():获取所有的分组# findall:查找所有满足条件的# text = "sho原创 2020-12-02 16:51:08 · 101 阅读 · 0 评论 -
python 正则表达式语法
import re# 1. 验证手机号码:手机号码的规则是以1开头,第二位可以是34587,后面那9位就可以随意了# text = "15895775470"# ret = re.match('1[34587]\d{9}',text)# print(ret.group())# 2. 验证邮箱:邮箱的规则是邮箱名称是用数字、英文字符、下划线组成的,然后是@符号,后面就是域名了# text = "1530385801139866@126.cn"# ret = re.match('\w+@[a-原创 2020-12-02 15:05:27 · 354 阅读 · 0 评论 -
python selenium操作cookie
from selenium import webdriver"""1. 获取所有的cookie: for cookie in driver.get_cookies(): print(cookie)2. 根据cookie的key获取value: value = driver.get_cookie(key)3. 删除所有的cookie: driver.delete_all_cookies()4. 删除某个cookie: driver.delete_co原创 2020-12-01 22:40:23 · 157 阅读 · 0 评论 -
python selenium隐式等待和显示等待
from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import By"""### 隐式等待和显示等待1. 隐式等待:指定一个时间,在这个时间内一直会处于等待状态。隐式等待需要使用原创 2020-12-01 22:37:16 · 450 阅读 · 0 评论 -
python 初识selenium
"""selenium就是一个机器人,来操作浏览器""""""selenium库的使用"""from selenium import webdriverimport timefrom selenium.webdriver.support.ui import Select'''#selenium的简单操作,打开网页,关闭网页driver_path = r'E:\pyspiderapp\chromedriver87.exe'#创建driver对象driver = webdriver.C原创 2020-12-01 14:57:31 · 101 阅读 · 0 评论 -
python爬取百度贴吧(urllib库)
import urllib.parseimport urllib.requestfrom 爬虫不同的库发出请求.usergent import usergentheader = {"User-Agent":usergent()}def loadpage(allurl): print("正在下载-----") urr = urllib.request.Request(allurl,headers=header) response = urllib.request.urlo原创 2020-11-01 14:28:44 · 630 阅读 · 0 评论 -
python bs4
import refrom bs4 import BeautifulSouppy_str_html = """<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <p class="title1" name="pythonjiesh原创 2020-11-01 10:02:01 · 108 阅读 · 0 评论 -
python urllib库、requests库
urllib库import urllib.requestimport refrom 爬虫不同的库发出请求.usergent import usergent#将useragent封装在一个模块,调用usergent函数就可以获得一个随机的useragentheader = {"User-Agent":usergent()}url = r"http://www.youdao.com/"#Request此类是URL请求的抽象,变量headers的值为字典urr = urllib.reques原创 2020-11-01 09:55:27 · 273 阅读 · 0 评论 -
python 爬取鹅肠招聘职位和要求(包含大多数城市)
TX招聘网站信息爬取import jsonimport reimport timeimport requestsclass TenxunSpider(): def __init__(self): self.headers = { "user-agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240原创 2020-11-01 09:08:08 · 191 阅读 · 0 评论 -
python xpath表达式
from lxml import etree#获取特殊的html#将html格式的内容放在字符串里面text = '''<div> <ul> <li calss = "item01">这是一个li标签</a></li> <li calss = "item02"><a href="https://www.baidu.com/">小张</a></li>原创 2020-10-04 19:10:37 · 409 阅读 · 0 评论 -
python 正则表达式
pass原创 2020-10-04 14:14:02 · 495 阅读 · 1 评论 -
python 多线程编程(补充)
#创建多线程import timeimport threadingdef listening(): for i in range(5): print("我在听歌") time.sleep(1)def run(): for i in range(5): print("我在跑步") time.sleep(1)def main(): #创建线程对象 #target的值是函数名 # 这个函数通过run(原创 2020-10-28 12:09:18 · 115 阅读 · 0 评论 -
python 多线程编程
本文对多线程进行的一个简单的总结。基本概念进程是操作系统分配资源的最小单位,线程是操作系统调度的最小单元。一个应用程序至少有一个进程,一个进程至少有一个线程。在python中,由于python的全局解释器锁(Global Interpreter Lock,简称GIL)的存在,多线程,并不是多个线程同时运行。同一时刻,只有一个线程能获得GIL锁,让CPU处理代码。多线程也能提高代码执行率,就是遇到IO密集型任务。比原创 2020-08-30 23:50:25 · 277 阅读 · 0 评论 -
python 使用if __name__ == ‘__main__‘(简称if语句)的理由
在python程序中使用if语句的理由:1、__name__是模块的内置变量,__name__的值是字符串类型。运行程序可以直接运行,或者导入该模块运行文件中的程序。在模块内执行脚本时,作为模块导入时,所以,if语句中的代码块不会被执行,但是可以调用模块中的变量、函数、类等等。2、如果一个模块被导入,想对该模块做一些测试,但是不影响模块的使用,可以在if语句里面做测试。举例子说明会更清楚。先认识模块的内置变量__name__...原创 2020-08-26 14:09:35 · 477 阅读 · 0 评论 -
python GUI容器控件Frame和尺度条控件Scale
Frame容器控件Frame是一个容器控件,可以在Frame放置其它的控件,比如Label、Button。这样,我们可以将不同的控件组合放在不同的Frame控件中进行管理。创建Frame容器控件from tkinter import *root = Tk()frame = Frame(root,bg = "yellow",height=100,width=100)frame.pack()root.mainloop()结果图示需要注意的是,不设置容器控件的高度和宽度容器控件不能完全显原创 2020-08-25 00:55:42 · 537 阅读 · 0 评论 -
python GUI之复选框Checkbutton
from tkinter import *root = Tk()Label(root,text='《铁齿铜牙纪晓岚》中喜欢的人物').grid(row=1)persons = {0:'纪晓岚',1:'和珅',2:'乾隆',3:'杜小月',4:'太后'}dic1 = {}for i in range(len(persons)): dic1[i] = BooleanVar() Checkbutton(root,text=persons[i],variable=dic1[i]).gri原创 2020-08-23 20:32:51 · 1409 阅读 · 1 评论 -
python GUI之Radiobutton选项按钮
from tkinter import *root = Tk()v = StringVar()v.set('0')def printselect(): str1 = v.get() if str1 == '0': print('1选项') elif str1 == '1': print('2选项') else: print('3选项')def other(): print('选项按钮的标记值为'+v.get原创 2020-08-23 20:03:40 · 1964 阅读 · 0 评论 -
python GUI多行输入文本Text
Text的属性wrapfrom tkinter import *root = Tk()root.geometry('200x300')te = Text(root,height=20,width=15)#将多行输入文本放入(pack)窗口中te.pack()#持续运行程序root.mainloop()这个文本框的高度为20,宽度为15,单位为字符。可以看到当每行的内容不会超过15字符,不断输入会发现,当所输入的内容超过20行,文本框会自动增加新行用于输入新的内容。也就是说,在没有明确说原创 2020-08-23 14:36:54 · 3723 阅读 · 0 评论 -
python tkinter模块的简单应用
运用了标签(Label)、按钮(Button)、单行文本输入框(Entry)完成一个简单的登录界面系统from tkinter import *root = Tk()root.title('欢迎使用登录界面系统')root.geometry('1500x650')dic1 = {'abc':'123'}#创建图片标签im = PhotoImage(file=r'C:\Users\Administrator\Desktop\图片PNG格式\喜鹊桃花折扇.PNG')Label(root,ima原创 2020-08-19 19:29:42 · 293 阅读 · 0 评论 -
python 图形用户界面tkinter之Entry单行输入文本
简单的Entry对象from tkinter import *root = Tk()Entry(root).pack()#Entry(root,text='你好').pack()root.mainloop()结果图示Mark:这里没有使用Entry对象的text属性,因为在单行文本框中text的值是不显示的。Entry对象的text属性不能设置Entry文本,文本的值是一个StringVar()对象,下面的属性中会用到。Entry对象属性Entry对象方法...原创 2020-08-18 23:19:42 · 2841 阅读 · 0 评论 -
python 图形用户界面tkinter之窗口组件的放置
pack方法 pack方法的可选参数有:side、fill、padx/pady。from tkinter import *root = Tk()#pack()side、fill、padx/padylabel1 = Label(root,text='1')label2 = Label(root,text='2')label3 = Label(root,text='3')label4 = Label(root,te原创 2020-08-17 21:47:27 · 755 阅读 · 0 评论 -
python 图形用户界面tkinter之按钮Button的使用
创建和设置窗口from tkinter import *#创建窗口对象root = Tk()#窗口属性设置root.title ('窗口标题')root.geometry('300x400')root.configure(bg='blue')root.iconbitmap(r'C:\Users\Administrator\Desktop\iVista 2 OS X Icons ico\ico\Burn.ico')按钮Button属性1def print1(): print('你原创 2020-08-16 22:11:02 · 6735 阅读 · 1 评论 -
python 图形用户界面tkinter之标签Label的使用
导入tkinter模块from tkinter import *构建窗口对象root = Tk()窗口属性设置#窗口标题root.title('窗口标题')#窗口大小root.geometry('200x300')#窗口背景颜色root.configure(bg = "blue")#让程序持续执行root.mainloop()结果图示标签label文本标签Label(root,text='Hello tkinter', fg='white',bg='red',原创 2020-08-15 23:30:28 · 2769 阅读 · 1 评论 -
python 处理时间日期的模块datetime
pass原创 2020-08-12 15:57:14 · 198 阅读 · 0 评论 -
python 类方法之instancemethod & classmethod & staticmethod
在日期时间处理的模块datetime中,会使用类直接调用方法,比如#导入datetime模块中的类datetimefrom datetime import datetime#使用类名调用类方法now,获得当前的时间dn = datetime.now()print(dn) 于是又回到对类中方法使用问题上。一般使用类方法的形式:创建.原创 2020-08-11 00:31:54 · 763 阅读 · 0 评论 -
python 浅谈模块的调用
一、模块、包、库模块:就是一个后缀名为.py文件'''author @ Laudate @ 2020年08月01日'''list1 = []def print1(): passclass Demo: pass比如这个模块就是由列表、函数、类组成的包:包就是一个目录,目录下有__init__.py的文件,和windows系统的文件夹类似package: &n...原创 2020-08-01 23:37:52 · 250 阅读 · 0 评论 -
python 文件读写的小总结(IO操作、文件读写、StringIO&BytesIO、序列化)
IO编程文件读写StringIO & BytesIO序列化反序列化原创 2020-07-26 00:08:05 · 1271 阅读 · 0 评论 -
python 对异常的小总结(包括自定义异常、手动抛出异常、异常处理)
我们常说执行程序时发生了异常,那么什么是异常。异常是在python解释器在一行一行执行代码时,碰到错误会触发的一个异常类对象。比如缩进问题、大小写问题等等。除了python已经有了的异常,根据实际需要,我们也可以自定义异常,但是需要我们手动抛出异常。如果想要对异常进行处理,就要使用try/except。原创 2020-07-16 16:39:03 · 1367 阅读 · 0 评论 -
出现局部变量在赋值前被引用错误的原因及解决办法
运行a = 13 def func(): a = a - 1 print(a)print(a)func()会出现local variable ‘x’ referenced before assignment的错误是因为全局变量与局部变量同名时,当你想在函数内部中修改外部变量的值,python首先会认为该变量是局部变量,函数内部没有定义局部变量a=value,而内部作用域想要改变外部作用域的值,就要用到global关键词。a = 13 def func(): glo原创 2020-05-19 01:32:45 · 16952 阅读 · 2 评论 -
Python 概念之类和对象
##类和对象##类变量和实例变量##变量的私有化属性##类的继承##抽象类原创 2020-07-07 00:02:27 · 177 阅读 · 0 评论 -
python 面向对象编程的简单介绍
面向对象是一种编程思想:想达到某个一个目的,不一定非要自己去做,只需要调用方法,让python去执行即可,至于方法内部具体是怎样实现的,不需要我们去考虑。面向对象编程会涉及到两个概念:类和对象。类是抽象的,对象是具体的。类有属性和方法。属性是静态的,方法是动态的。原创 2020-06-12 19:42:44 · 125 阅读 · 0 评论 -
python 递归函数及递归次数受到限制的解决办法
一个函数在内部调用自己,那么这个函数是递归函数。递归会反复使用本身,每递归一次,越接近最终的值。当一个问题可以由许多相似的小问题解决, 可以考虑使用递归函数。随着递归的深入,问题规模相比上次都应所减小。return函数本身的方法保证了递归的持续进行,但是如果没有明确的结束条件,递归会无限进行下去。所以当已经到了问题解决的程度, 应该告诉函数结束递归,这就需要明确的结束条件。原创 2020-06-11 00:12:54 · 2952 阅读 · 0 评论 -
python lambda函数
如果想要实现比较简单的功能,甚至不需要名字,可以使用lambda关键字创建匿名函数。匿名函数的使用,会让代码更加简洁,使用完后就会释放,不占内存。原创 2020-06-05 16:48:35 · 299 阅读 · 1 评论 -
python 函数闭包
函数里面定义另一个函数,分为外函数和内函数。内函数使用外函数的临时变量,调用外函数会返回内函数的引用或地址。这样就构成了一个闭包原创 2020-06-08 22:05:47 · 163 阅读 · 0 评论 -
python 函数嵌套和嵌套调用
嵌套函数是为函数内部服务的,比如减少代码的重复,想要调用函数,要使用函数名,内函数也一样。如果不用函数名调用内函数,内函数就永远不会执行。原创 2020-05-19 16:47:58 · 13524 阅读 · 1 评论