基本语法

from bs4 import BeautifulSoup
#实例化BeautifulSoup对象,然后把即将被解析的页面源码数据加载到了该对象中
soup = BeautifulSoup(respone,'lxml') #respone,表示html源码,可以读取本地文件,也可以读取网络请求

标签定位

# 标签定位,只会得到第一个匹配到的数据
# 语法:soup.标签名import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
url = 'https://www.jd.com/'
respone = requests.get(url=url,headers=headers)
respone.encoding = 'utf-8'
respone= respone.text
soup = BeautifulSoup(respone,'lxml')
print(soup.title)
print(soup.link) 返回结果:
<title>京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!</title>
<link href="//static.360buyimg.com" rel="dns-prefetch"/>

属性定位

# find('tagName',attrName='attrValue'):find只会定位到满足要的第一个标签
# findAll('tagName',attrName='attrValue'):可以定位到满足要求的所有标签
# attrName:除class属于要写成class_,其他的属性可以直接在源码那里复制,如:role="serachbox"import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
url = 'https://www.jd.com/'
respone = requests.get(url=url,headers=headers)
respone.encoding = 'utf-8'
respone= respone.text
soup = BeautifulSoup(respone,'lxml')
print(soup.find('div',class_='dt cw-icon'))
print(soup.findAll('div',class_='dt cw-icon'))返回结果:
<div class="dt cw-icon"><a href="//home.jd.com/" target="_blank">我的京东</a><i class="iconfont"></i><i class="ci-right"><s>◇</s></i></div>[<div class="dt cw-icon"><a href="//home.jd.com/" target="_blank">我的京东</a><i class="iconfont"></i><i class="ci-right"><s>◇</s></i></div>, <div class="dt cw-icon">客户服务<i class="iconfont"></i><i class="ci-right"><s>◇</s></i></div>, <div class="dt cw-icon">网站导航<i class="iconfont"></i><i class="ci-right"><s>◇</s></i></div>]

选择器定位

# 选择器定位:
# soup.select("标签名") 得到所有标签,返回list
# soup.select('[attr = "attrVlaue"]') 得到attr属性的属性值为attrVlaue的标签
# soup.select('div[attr = "attrVlaue"]'),得到div标签且div标签的属性attr = "attrVlaue"的数据,标签不加空格,表示同级,加空格则表示,div下一级的属性attr = "attrVlaue"的数据
# soup.select('.tang > ul > li') 定位到了class为tang下面的ul下面所有的li标签
# soup.select('.tang  ul') 定位到了class为tang下面包含ul的标签import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
url = 'https://www.jd.com/'
respone = requests.get(url=url,headers=headers)
respone.encoding = 'utf-8'
respone= respone.text
soup = BeautifulSoup(respone,'lxml')
tag1=soup.select('div')
tag2=soup.select('[class="search_logo_lk"]')
tag3=soup.select('a[class="search_logo_lk"]')
tag4=soup.select('div [class="search_logo_lk"]')
tag5=soup.select('div a[class="search_logo_lk"]')
tag6=soup.select('[role="serachbox"]>ul') #定位到了role="serachbox"属性下面的ul

提取标签中的内容

#tag.string:只可以提取到标签中直系的文本内容
#tag.text:可以提取到标签中所有的文本内容
#tag['src']) 提取标签的src的属性值import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
url = 'https://www.jd.com/'
respone = requests.get(url=url,headers=headers)
respone.encoding = 'utf-8'
respone= respone.text
soup = BeautifulSoup(respone,'lxml')
tag=soup.select('[href="//cart.jd.com/cart.action"]')[0]
print(tag.string)
print(tag.text)
print(tag['target'])返回结果:
我的购物车
我的购物车
_blank

bs4的BeautifulSoup使用相关推荐

  1. python bs4 之 BeautifulSoup 爬虫使用

    python爬虫从入门到放弃(六)之 BeautifulSoup库的使用 上一篇文章的正则,其实对很多人来说用起来是不方便的,加上需要记很多规则,所以用起来不是特别熟练,而这节我们提到的beautif ...

  2. python里import bs4是什么意思_from bs4 import BeautifulSoup报错

    Windows下安装BeautifulSoup4完后,from bs4 import BeautifulSoup报错: >>> from  bs4 import BeautifulS ...

  3. python里import bs4是什么意思_from bs4 import BeautifulSoup 引入需要安装的文件和步骤...

    调用beautifulsoup库时,运行后提示错误: ImportError: No module named bs4 , 意思就是没有找到bs4模块,所以解决方法就是将bs4安装上,具体步骤如下: ...

  4. bpython bs4用哪个解释器好_针对python爬虫bs4(BeautifulSoup)库的基础问题

    bs4(BeautifulSoup)库的基本使用 1.导入模块 from bs4 import BeautifulSoup 2.解析获取到的网页内容 文档被转换成Unicode,并且HTML的实例都被 ...

  5. python爬取小说代码bs4和_使用python爬虫,requests(夹带BeautifulSoup的使用)爬取网络小说...

    由于本人也是初学者,算是小白一枚,这里跟大家分享一下爬取网站上的小说的过程. 第一步我们需要导入我们需要的模块,比如requests,BeautifulSoup,还有正则模块re. 代码如下:impo ...

  6. python bs4模块_python爬虫之Beautifulsoup模块用法详解

    什么是beautifulsoup: 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.(官方) beautifulsoup是 ...

  7. bs4 乱码_Python BeautifulSoup中文乱码问题的2种解决方法

    解决方法一: 使用python的BeautifulSoup来抓取网页然后输出网页标题,但是输出的总是乱码,找了好久找到解决办法,下面分享给大家 首先是代码 复制代码 代码如下: from bs4 im ...

  8. python报错cannot import name ‘BeautifulSoup‘ from ‘bs4‘

    项目场景: python爬虫 问题描述: 我在写python爬虫的时候出现报错:cannot import name 'BeautifulSoup' from 'bs4' 下面是我的测试代码: fro ...

  9. 进程和线程的区别, 面相对象补充, 进程, 数据共享, 锁, 进程池, 爬虫模块(requests, bs4(beautifulsoup))...

    一. 进程和线程的区别?     第一:         进程是cpu资源分配的最小单元.         线程是cpu计算的最小单元.     第二:         一个进程中可以有多个线程.   ...

最新文章

  1. java 穷举 排列组合,JavaScript递归穷举所有排列组合并找出重复值
  2. JS-JavaScript String 对象-string对象方法1:fromCharCode()、charCodeAt()
  3. php yof框架特点_腾讯正式开源高性能超轻量级 PHP 框架 Biny
  4. 【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★
  5. 443 ERROR [main] client.ConnectionManager$HConnectionImplementation: Can‘t get connection to ZooKeep
  6. flutter-Text 以字符的方式截断
  7. 解决.NET CF 3.5 Bitmap(Stream)未处理异常问题
  8. MOSSE目标跟踪算法的理解
  9. aes256 php,如何在PHP中进行AES256解密?
  10. 如何进行大数据可视化分析
  11. js微信监听返回_Node.js入门
  12. ArcCatalog添加数据库连接
  13. Scratch3.0创意编程(基础篇):第11课 智能小车
  14. 系统架构师考试 2019
  15. android studio资源二进制,我如何从二进制转换为Java中的十进制(使用android studio)...
  16. matlab 5 .封装:幅频特性
  17. gstreamer学习笔记:将音视频合成MPEG2-TS流并打包通过rtp传输
  18. 源码解析2-GUI-绘制引擎(QPainter源码分析 )
  19. 如何用Python快速优雅的批量修改Word文档样式?
  20. 哔哩哔哩 机器人历险记_机器人历险记谁演的,机器人历险记的扮演者罗德尼资料介绍-易看TV...

热门文章

  1. 粒子群优神经网络优化
  2. 美学评价:Image Aesthetic Assessment: An Experimental Survey(计算机视觉美学评估综述)
  3. bugku 输入密码查看flag
  4. ue4 Android打包示例
  5. Lesson_3 作业_1 ---- 十六进制转换器
  6. 谷歌金山词霸和金山词霸2007性能比较
  7. android访问SD卡的权限
  8. 计算机专业考研复习方法,2014年东北大学计算机专业——关于考研我个人的复习方法...
  9. darknet 框架中.cfg文件的参数详解,以yolov3为例
  10. React Native 实现chat 即时聊天(第1天)