requests库
requests库有两个重要对象,Request对象和Response对象。
Request对象向服务器请求资源,由requests库内部生成;
Response对象包含从服务器返回的所有资源。
requests库的七种方法
HTTP协议
HTTP,Hypertext Transfer Protocol,超文本传输协议;HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。协议采用URL作为定位网络资源的标识。
URL格式 http://host[:port][path]
host:合法的Interest主机域名或IP地址
port:端口号,缺省端口为80
path:请求资源的路径
- requests.get(url,params=None,**kwargs)
url:拟获取页面的URL链接
params:url中的额外参数,字典或字节流格式,可选
**kwargs:12个控制访问参数
r=requests.get(url) #r为返回的Response对象
其中 r.encoding():若header中不存在charset,则认为编码为ISO-8859-1
- requests.raise_for_status()
返回异常
若返回的Response状态码不为200,产生异常requests.HTTPError - rerquests.request()
**kwargs:控制访问的参数,均为可选项
params:字典或字节序列,作为参数增加到URL中
headers:字典,HTTP定制头字段
作用:模拟chrome10头部像浏览器发起访问
timeout:设定的超时时间,单位为秒
爬虫通用代码框架
import requests
url='https://item.jd.com/2967929.html'
try:
r=requests.get(url)
r.raise_for_status()#若无异常则不做处理,有异常则跳到except
r.encoding=r.apparent_encoding
print(r.text[:1000])
except:
print('爬取失败')
BeautifulSoup库
BeautifulSoup库为解析、遍历、维护标签树的功能库
BeautifulSoup对应一个HTML/XML文档的全部内容
data
:需要BeautifulSoup解析的HTML格式的信息 html.parser:解析器
整理过后的HTML格式
HTML的标签树格式
遍历方式