一个网页的呈现,中间不知一次http请求,平均一个网页差不多10-15个http请求
谷歌:
右键开发者工具,network
点击请求,右边栏请求详细信息
右边栏:request,headers response query stirng get 参数 form data: post参数
fiddler:
配置:
抓包
<> :html内容
{json}:json数据,很可能就是个接口
{css}:css文件
{js}:js文件
右上:http请求信息:
raw: 请求头部的详细信息
webforms:请求所带参数,query_string formdata
右下:http响应信息
左下黑色框,输入指令:
clear:清除所有请求
select json:快速选择所有json请求
select image 图片请求
select html html请求
?内容:搜索包含这个内容的所有请求
模拟浏览器发送请求的库,python自带 python:urllib,urllib2 python urllib.request urllib.parse
字符串二进制字符串之间的转化
encode() 字符串》二进制
如果小括号里面不写参数,默认utf-8
如果写,就可以使gbk
decode() 二进制==》字符串
如果小括号里面不写参数,默认utf-8
如果写,就可以使gbk
urlopen(url)
urlretrieve(url,“名字”)
quote:url编码函数,将中文进行转化为%xxx
unquote:url解码函数,将%xxx转化为指定字符
(这两个就是方法就是把一些特殊的¥ 空格,中文惊醒编码或者解码操作)
import urllib.parse url_image="https://i02piccdn.sogoucdn.com/ebae78799b6a852a" url="https://www.sogou.com/sogou?query=%91%A8%E6%9D%B0%E4%BC%A6&pid=sogou-site-40f4da34bbe18021" #url只能有特定的字符组成,字母,数字,下划线 #如果出现其他的,比如¥ 空格,中文等,就要对其进行编码 url1='http://baidu.com/html?name="狗蛋"&pwd=123456' ret=urllib.parse.quote(url1) print(ret) re=urllib.parse.unquote(ret) print(re)
urlencode:给一个字典,将字典拼接为query_string并且实现了编码的功能
u="http://www.baidu.com/index.html" #假如参数有 name age sex height #http://www.baidu.com/index.html?name=18&sex=nv&height=180 name='狗蛋' age=18 sex='nv' height='180' date={ 'name':name, 'age':age, 'height':height, } #遍历字典 '''li=[] for k,v in date.items(): li.append(k+'='+str(v)) query_string='&'.join(li) url=url+'?'+query_string print(url) 等价于下面的方法''' query_string=urllib.parse.urlencode(date)#不近可以拼接字符,并且可以转码 print(query_string)
read(): 获取相应内容,内容是字节类型
geturl() 获取请求的url
getheaders() 获取头部信息,列表里面有元祖
getcode() 获取状态码
readlines() 按行读取,返回列表,都是字节类型
import urllib.request url='https://www.baidu.com/'#完整的url,http://www.baidu.com:80/index.html?name=goudan&password=123#lala response=urllib.request.urlopen(url=url) print(response) print(response.read().decode())