bs4解析

bs4:

  • 环境安装:

    • lxml
    • bs4
  • bs4编码流程:
    • 1.实例化一个bs4对象,且将页面源码数据加载到该对象中
    • 2.bs相关的方法或者属性实现标签定位
    • 3.取文本或者取属性
  • bs的属性和方法:
    • soup.tagName
    • tagName.string/text/get_text()
    • tagName[attrName]
    • find(tagName,attrName='value')
    • select('层级选择器') > 空格
- 环境的安装:
- pip install lxml
- pip install bs4
- bs4解析原理:
- 实例化一个bs对象,且将页面源码数据加载到该对象中。
- 使用bs对象中封装好的属性或者方法实现标签定位
- 将定位到的标签中的文本(属性)取出

用法:

import requests
from bs4 import BeautifulSoup
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
#将本地的一个test.html文档中的源码数据加载到bs对象中
soup = BeautifulSoup(open('./test.html','r',encoding='utf-8'),'lxml')
soup.p #定位到源码中第一个p标签
soup.a['href']  #取属性
soup.img['src']
# 取文本 返回字符串
soup.p.get_text()
# 取标签
soup.div
#
soup.div.string #string直接获取标签的直系文本内容
soup.div.text # 取文本
soup.ul.text
# 查找 只查找第一个元素
soup.find('li') #soup.li
#属性定位
soup.find('div',class_='song')
# 查找所有的 div标签
soup.find_all('div')[0]
# 通过选择器查找 返回列表
soup.select('#feng')
# 获取 内容
soup.select('ul > li > a')[3].string
  • bs4 爬取某某诗词网
#需求:某某诗词网中的三国演义小说进行爬取:http://www.*****.com/book/sanguoyanyi.html
import requests
from bs4 import BeautifulSoup
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
url = 'http://www.****.com/book/sanguoyanyi.html'
page_text = requests.get(url=url,headers=headers).text #数据解析
soup = BeautifulSoup(page_text,'lxml')
#解析出章节和详情页的url
li_list = soup.select('.book-mulu > ul > li') fp = open('./三国演义.txt','w',encoding='utf-8')
for li in li_list:
title = li.a.string
detail_url = 'http://www.**********.com'+li.a['href']
#获取了详情页的页面源码数据
detail_page_text = requests.get(url=detail_url,headers=headers).text
soup = BeautifulSoup(detail_page_text,'lxml')
#解析出章节对应的内容
content = soup.find('div',class_='chapter_content').text
fp.write(title+'\n'+content)
print(title,'下载完毕') fp.close()

bs4 解析 以及用法的更多相关文章

  1. Python3.x:bs4解析html基础用法

    Python3.x:bs4解析html基础用法 代码: import urllib.request from bs4 import BeautifulSoup import re url = r'ht ...

  2. Intent的详细解析以及用法

    Intent的详细解析以及用法      Android的四大组件分别为Activity .Service.BroadcastReceiver(广播接收器).ContentProvider(内容提供者 ...

  3. bs4解析库

    beautifulsoup4 bs4解析库是灵活又方便的网页解析库,处理高效,支持多种解析器.利用它不用编写正则表达式即可方便地实现网页的提取 要解析的html标签 from bs4 import B ...

  4. 爬虫的三种解析方式(正则解析, xpath解析, bs4解析)

    一 : 正则解析 : 常用正则回顾: 单字符: . : 除换行符以外的所有字符 [] : [aoe] [a-w] 匹配集合中任意一个字符 \d : 数字 [0-9] \D : 非数字 \w : 非数字 ...

  5. bs4解析

    介绍:将一个html文档转换成BeautifulSoup对象,然后通过对象的方法或属性查找指定的节点内容 转换本地文件: ​ soup = BeautifulSoup(fp,'lxml') fp为文档 ...

  6. python bs4解析网页时 bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to inst(转)

    Python小白,学习时候用到bs4解析网站,报错 bs4.FeatureNotFound: Couldn't find a tree builder with the features you re ...

  7. 爬虫系列二(数据清洗--->bs4解析数据)

    一 BeautifulSoup解析 1 环境安装 - 需要将pip源设置为国内源,阿里源.豆瓣源.网易源等 - windows (1)打开文件资源管理器(文件夹地址栏中) (2)地址栏上面输入 %ap ...

  8. pytho爬虫使用bs4 解析页面和提取数据

    页面解析和数据提取 关注公众号"轻松学编程"了解更多. 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值.内容一般分为两部分,非结构化的数据 和 结构化的 ...

  9. JQuery 中 is(':visible') 解析及用法

    实例 选择 <body> 元素中每个可见的元素: $("body :visible") 亲自试一试 定义和用法 :visible 选择器选取每个当前是可见的元素. 除以 ...

随机推荐

  1. Java学习笔记之——自动装箱与拆箱

    自动装箱与拆箱 基本类型与引用类型的互相转换 1. 基本类型对应的包装类 byte    short       char      int       long    flaot    double ...

  2. Reactor模式理解

    Reactor模式 也可以叫反应器模式或者应答者模式 reactor模式简介 让我们先了解一下阻塞I/O与非阻塞I/O I/O 是非常缓慢的 I/O绝对是计算机操作中最慢的.访问RAM的事件为ns级别 ...

  3. Ubuntu 安装 chrome

    依次执行命令: sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/ wget - ...

  4. Hibernate(链接数据库方便得多)!

    首先让我们看一下配置文件,我这里先是用struts搞得controller,不明白struts的可以去百度一下这里就不讲解了: 之后我们需要做一个hibernate的配置文件内容如下(这里链接的是my ...

  5. element vue Array数组和Map对象的添加与删除

    使用场景: 一个后台系统中, 管理员要配置自定义字段后台要生成id和title,其他角色要使用自定义字段的表单, 添加数据, 但是每个要填写的对象的id 和title都是无法固定的,因此页面显示的ti ...

  6. IDEA项目搭建十三——服务消费端与生产端通信实现

    一.简介 之前已经完成了EurekaClient的服务生产者和Feign的服务消费者模块的搭建,现在实现统一的通信约定 (1) 统一Request结构 (2) 统一Response结构 (3) 统一E ...

  7. arcgis在折点处打断并建立网络分析(最短路径等问题)

    目的:GIS网络分析用于对段路径等问题.这里仅仅讲述如何建立网络分析. 网络建立前必须满足以下条件 1.要素文件在节点处打断(本文下面会叙述) 2.要素文件在地理数据库里的数据集里(一般是这样) 3. ...

  8. QoS技术总结

    1.QoS主要功能是作为保证服务质量而存在,服务质量最明显的体现根据不同的优先级作出不同的转发行为.高优先级的报文不丢弃,低优先级的报文不能保证带宽. 2.当即将发生拥塞时,QoS的作用就体现出来了. ...

  9. 深入理解Java虚拟机06--虚拟机字节码执行引擎

    一.前言 物理机的执行引擎是直接在物理硬件如CPU.操作系统.指令集上运行的,但是对于虚拟机来讲,他的执行引擎由自己实现. 执行引擎有统一的外观(Java虚拟机规范),不同类型的虚拟机都遵循了这一规范 ...

  10. VR技术了解(作业)

    增强现实技术 概念:将现实世界和虚拟世界无缝集成的新技术. 突出特点: 真实世界与虚拟的信息集成 实时交互 三维空间中增添定位虚拟物 应用 医疗领域:医生可以利用增强现实技术,轻易地进行手术部位的精确 ...