2018-03-08
2018-03-09 本文已影响0人
秦时明星
BeautifulSoup与requests的官方文档
- bs4 地址 http://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/#attributes
- requests 地址 http://docs.python-requests.org/zh_CN/latest/index.html
BeautifulSoup的简易介绍
- 使用
from bs4 import BeautifulSoup
- BeautifulSoup将html文档装换成复杂的树形结构,每个节点都是python对象,4类对象分别是:
- Tag
- NavigableString
- BeautifulSoup
- Comment
- Tag 就是HTML中的标签,title,head,a,p标签等,Tag有两个属性,分别是name和attr。
- NavigableString 得到标签后,标签内的文字用.string即可获得。
In [13]: soup.a
Out[13]: <a href="https://www.waerfa.com/" rel="home">Mac玩儿法</a>
In [14]: soup.a.string
Out[14]: 'Mac玩儿法'
- BeautifulSoup 对象表示一个文档的内容。
遍历文档树
- 直接子节点:.contents .children 属性
- 所有子孙节点:.descendants 属性
- 节点内容: .string 属性
搜索文档树
1 find_all(name, attrs, recursive, text, **kwargs)
- name 参数
传字符串
soup.find_all('a')
传正则表达式
soup.find_all(re.compile("^b"))
传列表
soup.find_all(["a","b"])
- keyword 参数
soup.find_all(id="link2")
- text参数
soup.find_all(text="Documents")
CSS 选择器
CSS 选择器 标签名不加任何修饰,类名前加. , id前加#
soup.select() 方法,返回的是List
- 1 通过标签名查找
soup.select("title")
- 2 通过类名查找
soup.select(".sister")
- 3 通过id查找
soup.select('#link2')
- 4 组合查找
两者用`空格`分开,直接子标签查找用 `>`
soup.select('p #link2')
soup.select('head > title')
- 5 属性查找
soup.select('a[class="sister"]')
- 6 获取内容
获得的是列表,用遍历get_text()获得其内容
soup.select("title")[0].get_text()
Json数据格式
JSon就是JavaScript中的对象和数组
- 对象
- 对象在Js中为{}里的内容,数据结构为{键:值,键:值···}键值对,key为属性,value为属性值 取值方法为
对象.key
,属性的类型可以是数字、字符串、数组、对象等- 数组在js中为[]中的内容,数据结构为["python","javaScripts","C++"],使用索引取值,字段值类型可以是数字、字符串、数组、对象。
- 使用
import json
-
json 模块提供了四个功能:
dumps
,dump
,loads
,load
用于字符串与python数据类型之间的转换 -
1 json.loads()
json字符串转换为python数据格式
-
2 json.dumps()
python数据格式转换为json字符串