# print(resp.text)
# print(resp.content)
# print(resp.status_code)
# print(resp.url)
# print(resp.cookies) # 获取返回的cookies信息
# print(resp.cookies.get_dict()) # 获取返回的cookies信息
# # print(type(resp.json()))# 将结果进行反序列化
# print(resp.request) # 请求方式
# 从文档中获取编码方式
# print(resp.apparent_encoding)
# print(resp.encoding)
print(resp.headers) # 查看响应头
print(resp.history) # 重定向历史 即前一次请求的地址
print(resp.url) # 当前地址
# resp = requests.get(url,
# params={"wd":"egon"},
# headers={"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3538.77 Safari/537.36"},
# stream=True)
# 以流的方式读取原始数据 没有经过HTTP协议解析的数据 一般不用
# print(resp.raw.read(100))
# 当文档的编码方式response解码方式不同时 需要手动指定
# resp2 = requests.get("http://www.autohome.com/news")
# # 以文档声明的方式来解码
# resp2.encoding = resp2.apparent_encoding
# print(resp2.text)
# 对于返回值为json格式的处理
# jsonresp = requests.get("http://v.juhe.cn/toutiao/index?key=1f1ed574dda497de207ccca4d9999d7f")
#
# print(type(jsonresp.text))
# print(type(jsonresp.json()))
#
# print(jsonresp.json())
# 给服务器传参数
# requests.get("url",params={"key":'value'})
# post请求 data和json都能传参数
# requests.post("url",data={"name":"jerry","pwd":"123"},json={"name":"jerry","pwd":"123"})
# data 拼接为:name=jerry&pwd=123
# json 直接序列化成字符串 {"name":"jerry","pwd":"123"}
# 超时时间 第一个表示连接超时时间 2表示响应超时时间
# requests.post("https://www.baidu.com",timeout=(10,10))
# allow_redirects 是否允许重定向
# 代理池 ******** 对于爬虫而言是相当重要的一个参数
# ps = ["121.228.240.101:9999","121.228.240.101:9999","121.228.240.101:9999","121.228.240.101:9999"]
# import random
# # 使用代理服务器请求
# resp = requests.post("http://news.baidu.com/?tn=news",proxies={"HTTP":random.choice(ps)})
# with open("ttt.html","wb") as f:
# f.write(resp.content)
# print(resp.text)
# verify 证书验证 目前已经基本不用了 都换成了HTTPS 请求
# import requests
# respone=requests.get('https://www.12306.cn',
# cert=('/path/server.crt',
# '/path/key'),verify=True)
# print(respone.status_code)
# 上传文件
f = open(r"D:\jerry\spiderDay2\ttt.html","rb")
# 接收一个字典 key是服务器用于提取文件的字段名 f时要上传的文件对象
resp = requests.post("http://httpbin.org/post",files={"img":f})
print(resp.status_code)
# 使用点语法来查找标签 要注意 查找范围是全文 只能找到哦啊第一个名字匹配的标签
# tag = soup.a
# print(tag.attrs.get("href"))
# 嵌套选择
# print(soup.p.b.text)
# 获取子节点
# print(list(soup.p.children))
# for i in soup.head.children: # 返回一个迭代器
# print(i)
#
# # # print(soup.p.contents)
# for i in soup.head.contents: # 返回一个列表
# print(i)
# 获取父标签
# print(soup.p.parent)
# 获取所有的父辈标签
# print(list(soup.p.parents))
# for i in soup.p.parents:
# print(i.name)
print(soup.p.contents)
print(list(soup.p.descendants))
# 获取所有子孙标签 不同之处在于 会把所有子孙标签全部拆出来 包括文本内容
for i in soup.p.descendants:
print(i.name) # 文本内容没有name属性
# 获取兄弟标签 文本也被当做是一个节点
# 下一个兄弟
# print(soup.a.next_sibling.next_sibling)
# 之后的兄弟们
# print(list(soup.a.next_siblings))
# 上一个兄弟
# print(soup.a.previous_sibling)
# 之前的兄弟们
# print(list(soup.a.previous_siblings))
过滤器
# find_all查找所有匹配的标签
# 按照名字匹配 可以传一个名字 或 一个列表
# print(soup.find_all("a"))
# print(soup.find_all(["a","p"]))
# 找id 为link1 的a标签
# print(soup.find_all("a",attrs={"id":"link1"}))
# print(soup.find_all("a",attrs={"class":"sister"}))
# print(soup.find_all(name="a",))
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:爬虫,request,response 属性,方法,2.beautifulsoup解析模块 - Python技术站