python爬虫(二)

通过shng我们已经可以获得页面的html,接下来我们通过html.parser和BeautifulSoup库来解析html.实验环境ipython3

import requests
from bs4 import BeautifulSoup
r=requests.get("http://python123.io/ws/demo.html")
r.status_code
r.text
demo=r.text
soup=(demo,'html.parser')
print(soup.a)
print(soup.p)

 我们可以通过html.parser,来将页面熬成一锅soup,然后我们就可以直接通过soup.Tag来访问具体的标签。我们可以通过soup.Tag.string来得到标签内的字符。通过soup.Tag.attrs可以访问标签的属性。我们可以通过soup.Tag.comment来查看标签的注释。我们可以通过soup.contents得到和soup一样的内容,soup.contents得到的是一个列表。其实.contents指的是所有的儿子节点,可以通过soup.head.contents来查看所有的head的儿子节点。soup.body.contents可以得到所有的主体的内容,其中,\n也算作其中的一个元素,可以通过soup.body.contents[2]来访问得到。我们还可以通过soup.body.children来得到儿子节点,不过soup.body.children得到的是迭代器,我们要通过for children in soup.body.children 来访问。我们还可以通过soup.a.parent得到它父亲节点的标签,得到的也是一个列表我们可以通过soup.a.parent[3]来访问。同样的我们也可以通过soup.a.parents来访问,得到的是一个迭代器。这是树的上行和下行遍历,同样的我们还有平行遍历,使用soup.a.next_sibling soup.a.previous_sibling得到得是标签的列表。而soup.a.next_siblings和soup.a.previous_siblings得到的是一个迭代器要通过for循环来访问得到其中的值。
 平行遍历
 遍历关系
 当我们通过r.text得到的html是一盘散沙,这里写图片描述
 我们可以通过bs4库的pretty来组织一下,如图。这里写图片描述
 同样的pretty标签也可以使用于单个的标签组织,比如soup.a.pretty()

import requests
from bs4 import BeautifulSoup
r= requests.gets("http://python123.io/ws/demo.html")
r= requests.get("http://python123.io/ws/demo.html")
log
get_ipython().magic('logstart')
r= requests.get("http://python123.io/ws/demo.html")
r.status_encode
r.status_code
r.text
demo=r.text
soup =BeautifulSoup(demo,'html.parser')
print(soup.prettify())
print(soup.a)
print(soup.a)
print(soup.p)
print(soup.p.name)
print(soup.p.string)
print(soup.a.string)
print(soup.a.attr)
print(soup.a.attrs)
print(soup.a)
soup.head.contents
soup.head
soup
soup.body.contents
soup.body.contents[2]
soup.body.children
soup.body.parents
soup.body.parent
soup.body.childrens
type(soup.body.childrens)
type(soup.body.children)
soup.a.parents
soup.a.parent
quit()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值