- 爬虫概念
网络爬虫(又被称为网页蜘蛛,网页追踪者),是一种按照一定的规则,自动抓取网络信息的程序或脚本。
- GET & POST
HTTP与服务器交互的4个基本方法:
GET:会向数据库发索取数据的请求,无论进行多少次操作,结果都是一样的。就像数据库的select操作。
POST:向服务器端发送数据的,但是该请求会改变数据的种类等资源。就像数据库的insert操作。 --> 几乎目前所有的提交操作都是用POST请求的。
PUT:向服务器端发送数据的,从而改变信息,该请求是用来修改数据的内容,但是不会增加数据的种类。就像数据库的update操作。
DELETE:是用来删除某一个资源的。就像数据库的delete操作。
GET与POST的区别:
1)GET请求的数据附在URL之后(把数据放在HTTP协议头中)
以 ?分割URL和传输数据,参数间以 & 相连
英文/数字 ---> 原样
空格 ---> +
中文/其他字符 ---> %XX (16进制ASCII)
POST把数据放在HTTP包的包体中
2)GET可提交的数据量与URL长度有关
URL不存在参数上限问题,HTTP协议也没对URL长度进行限制;
主要是特定浏览器对它的限制,IE对URL长度限制是2083字节(2K+35);
而其他浏览器,如FireFox,理论上没有限制,取决于OS的支持。
POST对数据是没有限制的,限制主要是服务器的处理能力。
3)POST安全性比GET高
通过GET提交数据,用户名和密码将以明文形式出现在URL上
- requests模块:get方式
1 import requests2 3 params = { "key1": "hello", "key2": "world"}4 url = "http://www.jd.com"5 r = requests.get(url=url, params=params) # requests.get("https://www.jd.com/?key1=hello&key2=world")6 print(r.url)
https://www.jd.com/?key1=hello&key2=world
- requests模块:post方式
1 import requests2 3 params = { "key1": "hello", "key2": "world"}4 r = requests.post("http://httpbin.org/post", data=params)5 print(r.text)
{ "args":{},"data":"","files":{},"form":{ "key1":"hello","key2":"world"},"headers":{ "Accept":"*/*","Accept-Encoding":"gzip, deflate","Connection":"close","Content-Length":"21","Content-Type":"application/x-www-form-urlencoded","Host":"httpbin.org","User-Agent":"python-requests/2.18.4"},"json":null,"origin":"112.0.151.7","url":"http://httpbin.org/post"}
- requests模块:text与content
1 import requests 2 3 url = "https://www.qiushibaike.com/" 4 r = requests.get(url=url) 5 6 print(r.text) # 用于提取文本 7 print(type(r.text)) #8 9 print(r.content) # 用于提取图片、文件等10 print(type(r.content)) #
- requests模块:session()会话对象
1 import requests2 3 s = requests.session()4 5 url = "http://www.jd.com"6 7 s.get(url=url)8 # 所有一次会话的信息都保存在s中,只需对s进行操作就可以了
- requests模块:获取cookie信息
1 import requests 2 3 def save_cookie(): 4 s = requests.session() 5 s.get("https://www.hao123.com/") 6 print(s.cookies) 7 print(s.cookies.keys()) 8 print(s.cookies.values()) 9 for i in s.cookies:10 print(i)11 print(i.name, i.value, i.domain, i.path, i.expires)12 13 if __name__ == "__main__":14 save_cookie()
, , , , ]>['BAIDUID', '__bsi', 'hz', 'ft', 'v_pg']['E82C769F55DF08DAF85021675FA3A3AB:FG=1', '6671906315530985296_00_74_N_N_205_0303_c02f_Y', '0', '1', 'normal'] BAIDUID E82C769F55DF08DAF85021675FA3A3AB:FG=1 .hao123.com / 1560443017 __bsi 6671906315530985296_00_74_N_N_205_0303_c02f_Y .www.hao123.com / 1528910617 hz 0 .www.hao123.com / None ft 1 www.hao123.com / 1528991999 v_pg normal www.hao123.com / None