josn
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。
json.dumps
用于将 Python 对象编码成 JSON 字符串。
json.loads
json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。
json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
josn使用
import jsonjsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';text = json.loads(jsonData)print text复制代码
urllib中parse模块的使用
urlencode()
将字典{k1:v1,k2:v2}转化为k1=v1&k2=v2 print(url_data)
url = 'www.baidu.com/s?'dict1 ={ 'wd': '百度翻译'}url_data = parse.urlencode(dict1)复制代码
#url_data就是:wd=%E7%99%BE%E5%BA%A6%E7%BF%BB%E8%AF%91data = request.urlopen((url+url_data)).read() #读取url响应结果复制代码
urldecode
当urlencode之后的字符串传递过来之后,接受完毕就要解码了——urldecode。
urllib提供了unquote()这个函数,可没有urldecode()!
from urllib import unquoteunquote('%C4%A7%CA%DE')'\xc4\xa7\xca\xde'print unquote('%C4%A7%CA%DE')#得到:魔兽复制代码
urlparse
定义了url的标准接口,实现url的各种抽取
import urllib.parse as parseurl = 'https://www.baidu.com/s?ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3#a'result = parse.urlparse(url)print(result)print(result.scheme)复制代码
ParseResult(scheme='https', netloc='www.baidu.com', path='/s', params='',query='ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3', fragment='a')https # scheme:表示协议 # netloc:域名 # path:路径 # params:参数 # query:查询条件,一般都是get请求的url # fragment:锚点,用于直接定位页面的下拉位置,跳转到网页的指定位置 # urlparse的其他参数: # urlstring:这是必填项,待解析的url # scheme:默认的协议(http或者是https,假如要解析的连接没有带协议那么我们可以设置这个为默认的协议) # all_fragments:是否忽略锚点,如果忽略的话会被解析为path或者是query的一部分(就近原则,跟谁近就属于谁)复制代码
urlunparse
与上面的方法相反,是构造一个url
tkinter
窗口大小定义:
#800x600为窗口大小,+10+10为窗口所在位置。记住x是英文字母的x而不是乘号
root.geometry("800x600+10+10")
控件属性:
Dimension ------------------ 控件大小;
Color --------------------------控件颜色;
Font ---------------------------控件字体;
Anchor ----------------------------- 锚点;
Relief --------------------------控件样式;
Bitmap ------------------------------位图;
Cursor ------------------------------光标;
Dimension
控件大小;
Color
控件颜色;
Font
控件字体:可以设置字体大小
Anchor
锚点;使用的值为:n(north),s(south),w(west),e(east),crnter和ne,nw,se,sw,就是地图上的标识位置了,使用
Relief
控件样式
fg ,bg
改变前景色与背景色
''
标签控件,显示文本和位图,展示在第一行
grid
Label(tk,text="First").grid(row=0)#第一行Label(tk,text="Second").grid(row=1)#第二行Entry(tk).grid(row=0,column=1)#第一行第一个Entry(tk).grid(row=1,column=1)#第二行第二个
ListBox
ListBox是WinForm中的 列表 控件,它提供了一个项目列表(一组数据项),用户可以选择一个或者多个条目,当列表项目过多时,ListBox会自动添加滚动条,使用户可以滚动查阅所有选项。ListBox可以预先设定列表内容,也可以绑定其他控件或数据库,自动更新条目,把数据逐一显示出来。
selectmode
确定可以选择多少项,以及鼠标拖动的影响选择:
BROWSE:
通常,只能从列表框中选择一行。如果单击一个项目,然后拖动到不同的行,选择将会跟随鼠标,是默认的。
SINGLE:
你只能选择一行,不能拖动。
MULT IPLE:
您可以同时选择任意数量的行。点击在任意直线上,无论它是否被选中。不能拖动。
EXTENDED:
您可以一次选择任何相邻的g线。单击第一行并将g拖到最后一行。能拖动
insert
insert()可以选择在已有的item前后插入新的item,只需要指出在第几个。 insert(0,item) insert(ENF,item)
delete
删除Listbox中的项,使用delete,这个函数也有两个参数,第一个为开始的索引值;第二个为结束的索引值,如果不指定则只删除第一个索引项。
删除全部内容,使用delete指定第一个索引值0和最后一个参数END,即可 delete(0,END)
'''
滚动条
滚动条是独立的组件。 为了在某个足尖上安装垂直滚动条,需要做两件事:
1、设置该组件的yscrollbarcommand选项为Scrollbar组件的set()方法
2、设置Scrollbar组件的command选项为该组件的yview()方法
root = Tk()sb = Scrollbar(root) #垂直滚动条组件sb.pack(side=RIGHT,fill=Y) #设置垂直滚动条显示的位置lb = Listbox(root,yscrollcommand=sb.set) #Listbox组件添加Scrollbar组件的set()方法
- master
父窗口
- bg
背景色,如 bg = “Blue”
- fg
前景色,如 fg = “Yellow”
- hieght
设置显示高度、如果未设置此项,其大小以适应内容标签
- width
设置显示宽度,如果未设置此项,其大小以适应内容标签
- relief
指定外观装饰边界附近的标签,默认是平的,可以设置的参数:flat、groove、raised、ridg e、solid、sunken
- state
设置组件状态;正常(normal),激活(active),禁用(disabled)
- bd
设置边框bordwidth的大小,缺省为1或2个像素
- selectmode
选择模式:缺省(default)为浏览单选 BROWSE;多选 MULTIPLE;通过鼠标的移动选择
- EXTENDED:
shift和ctrl配合使用。
- listvariable
设置listvariable属性
一些常用的函数(方法):
参数 描述
-
insert 追加item,如listbox.insert(END,’a’), listbox.insert(3,’a’)
-
delete 删除item,如listbox.delete(3,4),删除全部list.delete(0,END)
-
select_set 选中,如listbox.select_set(0,2)
-
select_clear 取消选中如listbox.select_clear(0,1)
-
get 返回制定索引的项值,如listbox.get(1);返回多个项值,返回元组,如listbox.get(0,2);
-
返回当前选中项的索引listbox.curselection()
-
curselection() 返回当前选中项的索引,如listbox.curselection()
-
selection_includes 判断当前选中的项目中是否包含某项,如listbox.selection_includes(4)
Ajax
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML), 是指一种创建交互式网页应用的网页开发技术。 AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。 AJAX 是一种用于创建快速动态网页的技术。 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
简单的说就是网页加载,浏览器地址栏的网址并没有变,是javascript异步加载的网页,应该是ajax。AJAX一般是通过XMLHttpRequest 对象接口发送请求的,XMLHttpRequest 一般被缩写为 XHR。
request反防爬
代理设置
有些网站会限制 IP 访问频率,超过频率就断开连接。这个时候我们就需要使用到代理,我们可以通过为任意请求方式提供proxies参数来配置单个请求。
- ip
import requests proxies = { "http": "http://10.10.1.10:3128", "https": "http://10.10.1.10:1080",}resp = requests.get('http://www.baidu.com', proxies=proxies)print(resp.status_code)复制代码
- 浏览器头部
import randomuser_agent_list = [ 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', ' Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)']user_agent = random.choice(user_agent_list)复制代码