beautiful-soup是用来解析网页的利器。
我们先打开一个网页
code=200表示访问成功
from urllib.request import urlopen
url='http://www.xzw.com/astro/virgo/?appid=bds'
response=urlopen(url)
response.getcode()
content=response.read()
接下来,我们可以用beautiful-soup来解析这个网页,生成一个beautiful-soup对象
bs_obj=BeautifulSoup(urlopen(url), 'html.parser',from_encoding='utf-8')
bs_obj.title
然后可以用bs对象的find方法来查找节点,我们通过传入节点的标签和属性作为参数,返回节点的list
bs_obj.find_all('a',{'target':'_blank','hidefocus':'true'})
对于每个节点,我们可以获取它的名称,属性,文字
Node.name |
节点的名称 |
Node['href'] |
节点的属性 |
Node.get_text() |
节点的文字 |
node_list = bs_obj.find_all('a',{'target':'_blank','hidefocus':'true'})
for node in node_list:
print(node.name,node['href'],node['title'],node.get_text())
Children 节点
如果我们想拿到div标签后面的所有a标签,可以用node.children
for child in bs_obj.find('div', {'class':'a-nav'}).children:
print(child)
更多的还有find_parent, find_next_sibling等,用法都差不多,可以查看文档