首页 > 其他 > 详细

BeautifulSoup简单使用

时间:2020-06-05 15:26:32      阅读:56      评论:0      收藏:0      [点我收藏+]
#coding=utf-8
import requests
from bs4 import BeautifulSoup

resp=requests.get(https://www.baidu.com)  #请求百度首页
#resp=requests.request(‘get‘,‘https://www.baidu.com‘)   #同上
print(resp)     #打印请求结果的状态码
print(resp.content)     #打印请求到的网页源码

#标准选择器
#将网页源码构造成BeautifulSoup对象,采用解析器lxml解析html/xml
bsobj=BeautifulSoup(resp.content,lxml)
#bsobj=BeautifulSoup(resp.content,‘lxml/lxml-xml‘)
print(bsobj.prettify()) #实现格式化输出
print(bsobj.title)  #获取第一个title标签
print(bsobj.title.string)   #获取第一个title标签的文本内容
print(bsobj.head.title.string)  #嵌套选择,获取head标签下的title标签的文本内容
print(bsobj.p.a)
print(bsobj.p)  #获取第一个p标签
print(bsobj.p.string)   #获取第一个p标签的文本内容
print(bsobj.p.a.contents)   #contents返回的是列表,包含空格
le=bsobj.p.children     #chilren 返回的是迭代对象
for i in le:
    print(i)
print(bsobj.p.parent)   #第一个p标签的父节点
print(bsobj.get_text()) #获取所有标签文本内容
#find_all(name,attrs,text),可以根据标签名,属性,文本内容查找文档
#find():返回匹配结果的一个元素
print(bsobj.find_all(p)[0])   #获取列表的第一个元素
for p in bsobj.find_all(p):
    print(p.find_all(a))  #获取所有p标签下的a标签
print(bsobj.find_all(attrs={id:cp}))    #获取id属性值是cp的对应标签及子节点
print(bsobj.find_all(text=©2017 Baidu )) #获取对应文本内容, 精确匹配

#css选择器: select()
# 1. .表示class ,#表示id
# 2.其他属性  比如:[name=Tom]
# 3.标签1,标签2   找到所有的标签1和标签2
# 4.标签1 标签2    找到标签1内部的标签2
sel=BeautifulSoup(resp.content,html.parser)   #html.parser这是python自带的解析库

print(sel.select(.mnav))  #获取属性class值是mnav的标签
print(sel.select(.mnav[name=tj_trnews]))  #获取属性class值是mnav且name值为tj_trnews的标签
print(sel.select(.mnav.xxx))  #获取属性class值是mnav的标签下的class属性值是xxx的标签
print(sel.select(p a))  #获取p标签下的所有a标签
print(sel.select(#u1 .lb))    #获取id属性为u1的标签内部的class属性值是lb的标签
for a in sel.select(p):
    print(a.get_text())    #get_text()可以获取文本内容

a_list=bsobj.find_all(a) #获取网页中的所有a标签对象
text=‘‘ # 创建一个空字符串
for a in a_list:
    href=a.get(href) #获取a标签对象的href属性,即这个对象指向的链接地址
    #print(href)
    text+=href+\n #加入到字符串中,并换行
with open(baidulink.txt,w) as f: #在当前路径下,以写的方式打开一个名为‘baidulink.txt‘,如果不存在则创建
    f.write(text) #将text里的数据写入到文本中

 

BeautifulSoup简单使用

原文:https://www.cnblogs.com/cty136/p/13049666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!