网络爬虫与信息提取
2017-11-28 20:58:58 23 举报
AI智能生成
python spider 最最基础的参考,最简单,最快的走进爬虫世界!!!
作者其他创作
大纲/内容
简单使用requests库
requests.get(url,params=Nome,**kwargs)
r.status_code
验证是否连接成功
r.encoding
从HTTP header猜测文件的编码格式
r.apparent_encoding
从内容中分析出相应内容的编码方式
r.content
响应内容的二进制形式
r.text
返回网页内容
r.raise_for_status()
在方法内部获取r.status_code是否为200
简单使用BeautifulSoup库 <tag>.attrs或者<tag>.attrs["class"]
demo= r.text
soup=BeautifilSoup(demo,"html.parser")
print(soup.prettify())或者print(<tag>.prettify))
<tag>.name 或者<tag>.parent.name
<tag>.sting和type(<tag>.sting)
Nav是一种非属性字符串,Comment是字符串的注释部分
for child in soup.body.chirdren or descendants:/nprint(chirdren)
for sibling in soup.a.next_siblings or previous_siblings:/nprint(sibling)
详解requests库
requsets.request()
支撑以下方法的基础方法
requests.request(method,url,**kwargs)
requsets.get()
获取HTML网页的主要方法
requests.get(url,params=None,**kwargs)
url:拟获取页面的url链接
params:url中的额外参数
**kwargs:12个控制访问参数(均为可选项)
params:字典字节序列,作为参数增加到url
data:字典、字节或文件对象,作为Request的内容
json:JSON数据,作为Request的内容
header:字典,HTTP定制头
cookies:字典或cookiejar,Request中的cookies
auth:元组,支持HTTP认证功能
files:字典类型,传输文件
timeout:设定超时时间,单位为秒
proxies:字典类型,设定访问代理服务器,可以增加登陆认证
allow_redirects:TURE/FALSE,默认为TRUE,重定向开关
stream:TURE/FALSE,默认为TRUE,获取内容立即下载开关
verify:TURE/FALSE,默认为TRUE,认证SSL证书开关
cert:本地SSL证书路径
requsets.head()
获取HTML网页头信息
requsets.post()
向HTML网页提交POST请求
requsets.put()
向HTML网页提交PUT请求
requsets.patch()
向HTML网页提交局部修改请求
requsets.delete()
向HTML网页提交删除请求
详解BeautifulSoup库
BeautifulSoup库解析器
soup=BeautifulSoup(mk,"html,parser")
BeautifulSoup类的基本元素
Tag:标签,最基本的信息组织单元,分别用<>和</>开头结尾
Name:标签名字,<p>....</p>的名字就是“p”,格式:<tag>.name
Attributes:标签属性,字典形式组织,格式:<tag>.attrs
NavigableString:标签内非属性字符串,<>...</>中字符串,格式:<tag>.string
Comment:标签内字符串的注释部分,一种特殊的Comment类型
基于bs4库的HTML内容的遍历方法
标签树的下行遍历
.contents:子节点列表,将<tag>所有的儿子节点存入列表
.chilrden:子节点的迭代类型,与。contents类似,用于循环遍历儿子节点
.descendants:子孙节点的迭代类型,包含所有子孙节点,用于遍历循环
标签树的上行遍历
.parent:节点的父亲标签
.parents:节点先辈标签的迭代类型,用于循环遍历先辈节点
标签树的平行遍历
.next_sibling:返回按照HTML文本顺序的下一个平行节点标签
.previous_sinling:返回按照HTML文本顺序的上一个平行节点标签
.next_siblings:迭代类型,返回按照HTML文本顺序的后续所有平行节点标签
.previous_siblings:迭代类型,返回按照HTML文本顺序的前续所有平行节点标签
基于bs4库的HTML格式输出
<tag>.prettify():为HTML文本<>及内容增加“\n”
0 条评论
下一页