更新日期: 2021.03.23
本节内容 :
前面的 bs4 学习笔记内容源自官网文档,逐一介绍了它的的诸多才艺。
本节内容如下:
- bs4 解析思路及常用方法。
- 定位目标标签 召之即来~
- 获取目标信息 探囊取物~
目录
1. 解析思路及常用方法
使用 bs4 解析时,首先观察网页代码的规律,然后据此定位目标标签,接下来逐一获取目标信息。
1.1 观察网页代码规律
我习惯先观察网页的布局,然后查看目标信息出现的规律。比如上一节提到的 “慕课网免费课程首页”(链接:https://www.imooc.com/course/list)页面上的主要信息是40个课程,含图片,名称等信息。
按F12 显示网页代码,Ctrl +F 搜索第一个目标信息的关键词,比如 “疑难杂症”,查看出现的规律,发现这个关键词在整页代码中一共出现两次,推测可以使用 726 行的模式进行解析获取。再Ctrl +F 搜索第二个目标信息的关键词,如果代码模式和726行一样,就可以确定这个目标信息的获取方法了。
1.2 常用方法
本节主要就使用一个方法,find_all, 哈哈哈~~~
其他方法参见学习笔记:Python爬虫学习 - 从零开始 4 (学习BeautifulSoup bs4 靓汤)
2. 定位目标标签 召之即来~
2.1 定制网页代码
准备了以下三个标签,其中标了颜色的部分是需要在处理时注意的特殊情况:‘class’ 作为属性名称,属性名称含中划线,属性缺失,属性值包含空格。
2.2 常用方法总结~~~
既然认定它是目标标签,那它一定是有什么特别之处~
比如,标签名称与众不同,有某一个或几个特殊的属性,某个属性值符合预期,或者字符串符合一定的条件。那么,就根据它们的特殊之处构造搜索方法来获取这个标签~~
根据目标的特征及适用方法建立一个 “常用解析方法清单”。
2.3 上代码~~
from bs4 import BeautifulSoup
import re
my_doc = '''
<python_study star="505"
class="L"
version-year="2021"
teacher="alex wang"
<b> Python零基础入门</b></python_study>
<python_study
class="M"
version-year="2020"
teacher="alice li"
<b> Python从入门到精通</b></python_study>
<crawler_study star="255"
class="M L"
teacher="alice zhang "
<b> Python爬虫零基础入门</b></crawler_study>
'''
soup = BeautifulSoup(my_doc, "lxml")
# 根据标签名称定位标签
print