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. .NET CORE 设置cookie以及获取cookie

    使用我这个方式的前提是在mvc中,确认你安装了:Microsoft.AspNetCore.Mvc. 然后在继承了Controller的类型中使用我所说的方法. 直接使用即可,我是封装了方法供我自己使用 ...

  2. 软件测试工程师这样面试,拿到offer的几率是80%

    面试难还是不难?取决于面试者的底蕴(气场+技能).心态和认知及沟通技巧.面试其实可以理解为一场聊天和谈判,在这过程中有心理.思想上的碰撞和博弈.其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希 ...

  3. nginx部署与安装

    1.在学习ngnix的时候,免不了需要进行安装,安装其实很简单,一个shell脚本就可以搞定可以参考如下 使用root用户执行nginx-install.sh脚本即可,脚本如下: #!/bin/bas ...

  4. 【linux】如何开放防火墙端口

    linux默认大部分端口的是关闭的.而我们在开发.部署环境时,需要用到大量的服务,如mysql.tomcat.redis.zk等,需要开放指定的端口号. 以mysql端口3306为例 首先编辑服务器的 ...

  5. css:Media Queries: How to target desktop, tablet and mobile?

    <!doctype html> <html> <head> <meta name="viewport" content="wid ...

  6. 用python实现一个小游戏——抽牌

    想要实现一个抽牌的功能,有很多种实现方法,这时候我们创造一个对象,通过内置方法来完成这个功能: # Author:Zhang Zhao # -*-coding:utf-8-*- from collec ...

  7. CNN中,1X1卷积核到底有什么作用呢?

    CNN中,1X1卷积核到底有什么作用呢? https://www.jianshu.com/p/ba51f8c6e348 Question: 从NIN 到Googlenet mrsa net 都是用了这 ...

  8. 如何在数据表当中找出被删掉的数据行ID

    这个问题是一年前我刚步入IT行业的一个面试题,当时抓破头皮都想不到的问题,但现在回想过去自身不禁感到可笑,不多扯直接写解决方案.如何在数据表当中找出被删掉的数据行ID,意思是:在一堆的数据当中,让你找 ...

  9. 智能POS相关FAQ

    1.安卓智能POS(一体机)的口碑点餐已知问题: 1.由于口碑的组合套餐接口不稳定,强烈建议商户不要使用组合套餐商品.已开通口碑后付的门店,如果有组合套餐商品,暂时不要使用组合套餐商品:有组合套餐需求 ...

  10. Python基于皮尔逊系数实现股票预测

    # -*- coding: utf-8 -*- """ Created on Mon Dec 2 14:49:59 2018 @author: zhen "&q ...