爬虫和办公自动化(三)

本文深入探讨了Python爬虫和办公自动化中处理数据的步骤,包括使用BeautifulSoup库解析和提取数据。解析数据是将网页源代码转化为Python可理解的格式,而提取数据则是过滤无关信息,获取所需数据。文中通过豆瓣Top250书籍列表为例,展示了如何利用find()和find_all()方法,结合HTML属性如class和id进行数据筛选。同时介绍了Tag对象的使用,包括其text属性和HTML属性名取值,以及CSS选择器的应用,帮助更高效地定位和提取数据。
摘要由CSDN通过智能技术生成

*复习 爬虫和办公自动化(二)*:
HTML常见元素:

  • h1 一级标题 <h1>标题</h1>
  • h2 二级标题 <h2>标题2</h2>
  • p 段落标签 <p>这是一个段落</p>
  • a 超链接,用来跳转网页 <a href="a.html">链接</a>
  • img 图片标签,用于展示图片 <img src="pic.jpg"/>
  • div 用于定义文档的块区域 <div>这是一个块区域</div>

非自闭合元素和自闭合元素

  • 非自闭合元素:<h1>Hello,world!</h>
  • 自闭合元素: <meta charset="utf-8"/>

HTML元素属性属性名=“属性值” 且必须在开始标签中。HTML元素可以拥有多个属性,用空格分隔开即可。

爬虫和办公自动化(三)

**处理数据:

**
第三方库BeautifulSoup:BeautifulSoup库的名字取自刘易斯·卡罗尔在《爱丽丝梦游仙境》里的同名诗歌

处理数据分为两步:解析数据提取数据
解析数据:指将网页源代码解析成 Python 能“读懂”的格式
提取数据:指将网页源代码中无关数据过滤掉,只提取出我们所需要的数据。

解析数据


豆瓣读书 Top250 为例,它的网址是:https://book.douban.com/top250
将其网页代码解析成BeautifulSoup对象:

import requests
from bs4 import BeautifulSoup

headers = {
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
res = requests.get('https://book.douban.com/top250', headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
print(soup)
  • 相比之前我们添加 headers 参数,这是为了应对豆瓣的反爬虫机制

  • 通过 from bs4 import BeautifulSoup 语句导入 BeautifulSoup,然后使用 BeautifulSoup(res.text, ‘html.parser’) 语句将网页源代码的字符串形式解析成了 BeautifulSoup 对象

  • 创建 BeautifulSoup 对象时需要传入两个参数:

    1. 第一个参数是要解析的 HTML 文本,即网站源代码的字符串形式(res.text)。
    2. 第二个参数是解析 HTML 的解析器,html.parser 是 Python 中内置的解析器,较为简单方便。

网页源代码解析成 BeautifulSoup 对象,打印出来的结果和原来的网页源代码(也就是 res.text)一模一样,但实际上是不同的东西可以用 type() 函数将 res.text 和 BeautifulSoup 对象 的类型打印出来对比一下:

res = requests.get('https://book.douban.com/top250', headers=headers)
print(type(res.text))

 输出:<class 'str'>

soup = BeautifulSoup(res.text, 'html.parser')
print(type(soup))
 输出:<class 'bs4.BeautifulSoup'>

可以看到,**res.text 的类型是字符串,而 soup 的类型是 BeautifulSoup 对象。**相比字符串,BeautifulSoup 对象 里有很多强大的方法和属性。通过这些方法和属性,我们就能方便快捷地提取出我们所需要的数据。

提取数据:

find()方法find_all()方法

  • find() 返回符
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值