- 博客(31)
- 收藏
- 关注
原创 json数据的操作
jsonjson是网页后台与服务器交换数据的一种格式,由服务器发出请求,服务器返回json格式的数据,或者浏览器发送json格式的数据给服务器,服务器再返回json格式的数据。Json本质就是一个字符串,算上符号也是字符串,需要使用方法转换成python可用的格式(列表,字典等)python对象转换成json字符串json.dumps():把一个Python对象编,码转换成Json字符串。>>> import json>>> python_obj = [[1,
2021-06-15 13:52:58
616
原创 cookie的讲解
cookieCookie主要分为两种:会话Cookie:不设置过期时间,保存在浏览器的内存中,关闭浏览器,Cookie便被销毁普通Cookie:设置了过期时间,保存在硬盘上关于cookie因为最开始的cookie是网景公司定义的,后来又有了RFC版本所以当前的Cookie有两个版本: Version 0 Version 1他们有两种设置响应头的标识,分别是: Set-Cookie和Set-Cookie2,这也造成 了一些属性的不同,这里需要注意:常用的为Version 0version0的
2021-06-15 13:40:32
239
原创 request对数据的操作
request对数据的操作响应数据响应内容获取响应数据内容:res.text 获取HTML文本res.content 获取二进制流res.json() 获取json数据res.encoding 获取响应的格式res.encoding = ‘utf-8’ 更改获取到的格式其中Text是以文本的格式打开内容,常用来查看html网页Content是以二进制的格式打开内容,常用来查看非文本的内容,如视频,图片,声音等
2021-06-10 13:44:10
351
2
原创 request的使用
requests模块基本使用requests库的安装pip install requestsget请求:requests的get请求:requests.get + headersrequests.get + headers + paramsrequests.get + headers + params + proxy发送请求r = requests.get('https://api.github.com/events')r = requests.post('http://httpb
2021-06-10 13:32:09
251
原创 爬虫 使用python+requests模块爬取12306网站的车次信息
用requests模块,爬取12306的车次信息先看代码import reimport requestsimport jsona=requests.get('https://kyfw.12306.cn/otn/resources/js/framework/station_name.js')# print(a.text)a1=a.textl=a1.split('@')# print(l)li={}li1={}for i in range(1,len(l)): s = re.fi
2021-06-10 10:45:26
1622
2
原创 urllib.request高级特性
urllib.request高级特性我们虽然可以构造 Request ,但是一些更高级的操作,比如 Cookies 处理,代理需要Handler 处理。(Handler时一个种类)可以把Handler理解为各种处理器,有专门处理登录验证的,有处理 Cookies 的,有处理代理设置的,利用它们几乎可以做到任何 HTTP 请求中所有的事情。首先介绍下urllib.request.BaseHandler,它是所有其他Handler的父类,它提供了最基本的 Handler 的方法,例如 default_op
2021-06-07 14:49:46
179
原创 处理网络请求urllib
处理网络请求urlliburllib中包括了四个模块,包括urllib.request ,urllib.error,urllib.parse,urllib.robotparserurllib.request:可以用来发送request和获取request的结果urllib.error:包含了urllib.request产生的异常urllib.parse:用来解析和处理URLurllib.robotparse:用来解析页面的robots.txt文件 使用urllib.request发送请求U
2021-06-04 16:16:32
78
原创 HTML请求与响应
请求有客户端向服务器发出的, 可以分为四部分内容: 请求方法(Request Method), 请求网址(Request URL), 请求头(Request Headers), 请求体(Request Body)请求方法常见有8种GET: 请求页面, 并返回页面内容POST: 用于提交表单数据或上传文件, 数据包含在请求体中PUT: 从客户端向服务器传送的数据取代指定文档中的内容DELETE: 请求服务器删除指定的页面HEAD: 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取
2021-06-01 09:23:20
2101
原创 BeautifulSoup介绍
BeautifulSoupresponse=requests.get("https://www.baidu.com") ##获得网页的回应html=response.text ##获得网页的源代码soup=BeautifulSoup(html,"html.parser") ##将网页转化成BeautifSoup对象BeautifulSoup 简介BeautifulSoup 就是 Python 的一个 HTML 或 XML 的解析库,我们可
2021-05-25 08:32:48
402
原创 网络代理
我们在做爬虫的过程中经常会遇到爬虫正常运行抓取数据,然而一杯茶的功夫可能就会出现错误,比如 403 Forbidden,这时候打开网页一看,可能会看到 “您的 IP 访问频率太高”的提示。出现这种现象的原因是网站采取了一些反爬虫措施。比如,服务器会检测某个 IP 在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息。一种有效的方式就是使用代理,借助代理来伪装我们的 IP,让服务器识别不出是由我们本机发起的请求。基本原理代理实际上指的就是代理服务器,它的功能是代理网络用户去取得
2021-05-24 10:27:08
1621
原创 正则表达式
re正则表达式,是用来对一段文字按照我们想要的条件进行筛选。导入inputer re匹配re.match()re.match(pattern,string,modifier),其中pattern是正则表达式,string是要匹配的字符串,modifier是修饰符控制正则的匹配方式。match()方法有两个方法:group() :输出匹配到的结果span() :输出匹配的范围result = re.match(pattern,string)strResult = result.g
2021-05-12 08:07:49
131
原创 django的多对多与多对单表
多对一表在表中直接加入一个表列用来记录对应的表语法ForeignKey(to, on_delete, related_name=None, related_query_name=None, limit_choices_to=None, parent_link=False, to_field=None, db_constraint=True, **kwargs)to : 要关联的表名。on_delete : 当删除关联表中的数据时
2021-05-06 10:34:16
190
原创 django中的session
session(会话) ○ 服务器的一种存储技术 ○ 用于加入购物车,免登陆 ○ 默认session会在数据库中有一张表 ○ request.session获得session就是浏览器自动生成的一个关于该网站的表,每次访问该网站时浏览器都会将对应的该表自动发送到服务器,在浏览器端一般也保存着相对应的信息。解释session当访问服务器否个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session,而这个内存是跟浏览器关联在一起的。这个浏览器指的是浏览器窗口,或者是浏览
2021-05-06 09:51:29
276
原创 django常用代码
运行服务器命令如下:python manage.py runserver ip:端口 python manage.py runserver可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000。创建后台管理账户:python manage.py createsuperuser用来同步models中的模型类,将模型类写到子应用中的那个装数据的文件夹(migrations),python manage.py makemigrations根据子应用中装数据的文件夹(migra
2021-04-23 15:04:41
257
原创 django注册用邮箱发送验证码
lis = []#设置一个空列表用来存放发送的验证码,用来验证def yzm1(): res1 = "" for i in range(4):#用四个随机数组成验证码 num = random.randint(0, 9) res1 += str(num) lis.append(res1)#将验证码放入空的列表中 return res1#返回验证码class zc(View): def get(self, request):
2021-04-15 19:18:01
288
1
原创 request
import timefrom urllib import requestfrom multiprocessing import Processdef aa(uit): pen=request.urlopen(uit)lis = []aaa = ['https://blog.csdn.net/weixin_46643772/article/details/115122278', 'https://blog.csdn.net/weixin_46643772/article/de
2021-04-15 18:49:22
81
原创 介绍django
安装django模块pip install Django==2.1.2安装需要的mysql模块pip install pymysql安装完成自之后,在想要创建django的文件夹中使用cmd然后输入django-admin startproject 工程名称就会创建一个django项目下面主要介绍django的各种项目文件的用处My_django和项目名称相同的文件夹,存放的是网站的主要文件My_django/Urls文件是主路由,进入网站所有路由都由这个文件进行指向#主的Ur
2021-04-15 18:41:53
98
原创 使用request下载图片
request介绍Request是python中一个用来访问互联网服务器的库。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。功能非常全面而且使用方便request安装在cmd中输入 pip install requests 进行安装request的用法很多,这里介绍怎么用request 根据连接同时下载多个图片具体代码from urllib import requestfr
2021-04-08 19:07:14
2268
7
原创 socket详解
什么是socket我们写的网络编程属于应用层,当我们写好了程序后,需要将数据发送给运输层,应用层和运输层通信需要遵循相关协议,我们不了解运输层的协议,因此提供了Socket层Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它负责处理复杂的TCP/IP协议族让Socket去组织数据,以符合指定的协议,我们只负责编写逻辑即可,不用去管TCP/IP具体的格式,Sockect会帮我们做。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。基于文件型套接字家族的名字:A
2021-04-07 19:34:20
1206
原创 网络协议
网络协议网络协议是为了能让计算机在网络中进行数据交换而人为建立的规则、标准。互联网上有上百种协议,但是最重要的两个协议是TCP协议和IP协议,因此我们将上百种协议统称为TCP/IP 协议族。根据协议的功能的不同抽象成了4层。应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等传输层:TCP,UDP网络层:IP,ICMP,OSPF,EIGRP,IGMP数据链路层:SLIP,CSLIP,PPP,MTU传输的时候先将数据从应用层传递到传输层,然后再从传输层传递到网
2021-03-26 08:10:33
1070
原创 网络基础知识
计算机与计算机之间通过网络进行信息的传输,一个网络就是多个计算机间的传输信息的通道计算机网络在网络中相互通信的双方叫做客户端与服务端客户端:例如qq、微信,浏览器等等。服务端:一直运行着给别人提供服务的电脑、服务器等。客户端和服务端有两种类型,被称作架构C/S架构Client与Server ,中文意思:客户端与服务器端架构。客户端指客户端应用程序exe,程序安装后能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。B/S架构Browser与Server,中文意思:浏览器端与服务器端
2021-03-23 14:09:38
993
原创 Python异常捕获
python中的异常在python编程中会出现许多的程序错误,程序在遇到这种错误时会直接终止程序,导致一个程序,因为一个小错误直接结束运行如print(12/0)异常是指在语法正确的前提下,程序运行时报错就是异常。异常的捕获当Python中发生异常时我们如果不希望程序终止执行,就需要捕获处理它。捕获异常的方法:try:...代码..except 异常类型: ...处理异常代码...程序顺序执行try中的代码,如果try中代码报错,则终止执行try中的代码,如果出现的错误类型与
2021-02-20 15:28:28
326
原创 python中的内置方法
len(变量名)len(变量名) 代表获取这个变量的长度,几位或者几个字母。获取完相当于一个数据,需要用一个变量名接受。A= len(变量名) len() 方法返回对象(字符、列表、元组等)长度或项目个数。replace替换完是一个数据,需要用另一个数据类型接受m = n.replace(“0b”,"")替换m中0b为“空“变量名.replace(“要替换的”,“替换的”) 将变量中的一些字符换乘其他字符变量名.replace(“要替换的”,“替换的”,2) 加数字了就是替换的数量
2021-02-19 12:57:42
146
1
原创 Variable 类 global
Variable 类有些控件 (比如 Entry 控件, Radiobutton 控件 等) 可以通过传入特定参数直接和一个程序变量绑定, 这些参数包括: variable, textvariable, onvalue, offvalue, value.这种绑定是双向的: 如果该变量发生改变, 与该变量绑定的控件也会随之更新.这些 Tkinter 控制变量和一般的 Python 变量一样, 都是用来保存某个值的.但一般的 Python 变量不能作为属性值被传递给 variable 或者 textva
2021-02-19 12:25:14
631
原创 数据类型
数据类型内置的 type() 函数可以用来查询变量所指的对象类型。Python 中的变量不需要声明。变量在使用前需要赋值。在 Python 中,变量没有类型。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:Python=100Java=50赋值可以为数字(Number):可以是 int、float、bool、complex(复数)类型。字符串(String):如果赋值是字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠
2021-02-19 11:32:14
143
3
原创 Tkinter控件(下)
按钮command关联一个函数,当按钮被点击时,调用函数。b=tk.Button(window,text='hitme',width=15,height=2,command=hit_me)Command=函数名字 用于按按钮调用的函数Listbox组件列表显示框:用于显示列表的组件l=Listbox(root,listvariable=var2)listvariable=var 是代表listbox组件内容为var这个变量代表的值使用for语法往列表显示框中添加列表for 变量名
2021-02-18 17:50:28
378
原创 Tkinter控件(上)
tkinter中的常用控件在Tkinter中控件的使用都是基于如下的形式的:控件类型(根对象, [属性列表])在控件定义好之后就需要将其添加到主界面上去。通常使用的布局方法便是pack()函数,没有调用pack()函数控件是不能在界面上显示的。下面列出了常用的一些控件,常用控件如下:Button 按钮控件;在程序中显示按钮。Canvas 画布控件;显示图形元素如线条或文本Checkbutton 多选框控件;用于在程序中提供多项选择框Entry 输入控件;用于显示简单的文本内容Frame 框
2021-02-18 17:17:54
395
原创 类的介绍
面向对象Class a ():Def aaa(): A=10 F=a()类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称
2021-02-18 16:54:47
800
2
原创 对Excel进行操作
对Excel进行操作如果文件中有中文需要对文件进行编码file = file.decode(“utf-8”)1、导入模块(xlrd) import xlrd 2、打开Excel文件读取数据 data = xlrd.open_workbook('excelFile.xls')3、常用方法 **获取一个工作表** table = data.sheets()[0] #通过索引顺序获取 table = data.sheet_by_index(0
2021-02-18 16:34:52
230
4
原创 python中的布局方法
**pack() 方法**after=widget #紧接后续控件before=widget #放在控件之前expand=bool #若为1,同步放大控件fill=NONE #设置控件全填充 ‘X’横方向 or ‘Y’纵方向 or ‘BOTH’全屏方向in=master #包含控件in_=master #包含控件,in_方便关键字用法ipadx=amount #横轴留余(内部留白的空间距离)ipady=amount #纵轴留余 (内部留白的空间距离)padx=amount #
2021-02-18 16:15:52
785
原创 使用python对文件进行操作
Open方法:a=open(‘文件路径’,mode=‘对文件进行的操作’)A是句柄代表文件进行操作,mode=访问文件的模型,r 表示读,默认也是r 模式open是内置函数,会返回一个file对象赋值给a,a用来对文件进行操作a.file类中的方法,方法需要和mode相对应open方法操作完之后需要用a.close()来关闭文件读取操作r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb :以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。一般用于非文本文件如
2021-02-18 16:07:08
106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人