1.GET请求:在浏览器中直接输入URL并回车(在URL中可以看到请求参数,最多1024字节)
2.POST请求:大多在表单提交时发起,如登陆(通过表单形式传输,包含在请求体中,没有字节限制)
3.Cookies:
import requests
r = requests.get("https://www.baidu.com")
print(r.cookies)
for key,value in r.cookies.items():
print(key+'='+value)
结果:
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
BDORZ=27315
先用cookies属性获得Cookies,其是RequestCookieJar类型,用items()方法将其转化成元组组成的列表,遍历输出每一个Cookies的名称和值,实现Cookies的遍历解析
会话维持(Session):
import requests
s= requests.Session()
s.get('http://httpbin.org/cookies/set/number/123456789')
r=s.get('http://httpbin.org/cookies')
print(r.text)
结果:
{
"cookies": {
"number": "123456789"
}}
4.正则表达式:
\d匹配数字 \d{4}匹配是个数字
\w匹配字母,数字及下划线
$ 匹配一行字符串的结尾
\s匹配任意空白字符
尖角符号 匹配字符串的开头(数字键6所代表的 特殊符号打不出来)
.* 匹配任意字符 ,贪婪匹配 尽可能匹配多的字符
.*? 非贪婪匹配
注:在匹配时,尽可能用非贪婪匹配,但是匹配的结果在字符串结尾时,非贪婪匹配匹配不到任何内容。
import re
content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^He.*(\d+).*Demo$',content)
print(result)
print(result.group(1))
结果:<_sre.SRE_Match object; span=(0, 40), match='Hello 1234567 World_This is a Regex Demo'>
import re
content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^He.*?(\d+).*Demo$',content)
print(result)
print(result.group(1))
结果:<_sre.SRE_Match object; span=(0, 40), match='Hello 1234567 World_This is a Regex Demo'>
1234567
import re
content='http://weibo.com/comment/kEraCN'
result1=re.match('http.*?comment/(.*?)',content)
result2=re.match('http.*?comment/(.*)',content)
print('result1',result1.group(1))
print('result2',result2.group(1))
结果:result1
result2 kEraCN
re.S :使.匹配包括换行在内的所有字符,re.I使匹配对大小写不敏感。
当正则匹配特殊字符时,可在前面加反斜线\转义即可。
match():从字符串的开头开始匹配,开头不匹配,则失败。
search():匹配时扫描整个字符串,然后返回第一个成功匹配的对象,findall()返回匹配的所有对象。
sub(): 修改文本
import re
content='54akhdbru3hh32kk'
content=re.sub('\d+','',content)
print(content)
结果:akhdbruhhkk