网络数据爬取(一)初试BeautifulSoup

本文介绍如何使用Python的BeautifulSoup库创建网络爬虫抓取特定网页的内容,并解析出小说人物名称和对话。通过实例演示了如何定义和使用findAll及find方法,并解释了各参数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习网络数据采集(一)

创建一个网络爬虫来抓取 http://www.pythonscraping.com/pages/warandpeace.html这个网页。

在这个页面里,小说人物的对话内容都是红色的,人物名称都是绿色的。

抓出整个页面,然后创建一个 BeautifulSoup 对象:

from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen("http://www.pythonscraping.com/pages/warandpeace.html")
bs0bj = BeautifulSoup(html,"lxml")
nameList = bs0bj.findAll("span",{"class":"green"})
for name in nameList:
    print(name.get_text())

运行结果(返回的为人物名称列表,仅列出部分结果):

Anna
Pavlovna Scherer
Empress Marya
Fedorovna

 知识点一:

在BeautifulSoup中定义了两个函数:

findAll(tag, attributes, recursive, text, limit, keywords)
find(tag, attributes, recursive, text, keywords)

在 95% 的时间里都只需要使用前两个参数: tag 和 attributes 。

标签参数tag-----传一个标签的名称或多个标签名称组成的 Python列表做标签参数,如:

findAll({"h1","h2","h3","h4","h5","h6"}) # 需为标签,不能够为任意字符。

属性参数 attributes----用一个 Python 字典封装一个标签的若干属性和对应的属性值。如:

findAll("span", {"class":{"green", "red"}}) # (标签,{“标签”:{“属性一”,“属性二”,“属性三”.......}})

递归参数 recursive-----一个布尔变量,默认为True, findAll 会根据你的要求去查找标签参数的所有子标签,以及子标签的子标签。如果 recursive 设置为 False , findAll 就只查找文档的一级标签。(一般不需设置)文本参数 text----用标签的文本内容去匹配,而不是用标签的属性。假如我们想查找前面网页中包含“the prince”内容的标签数量,我们可以把之前的 findAll 方法换成下面的代码:

nameList = bsObj.findAll(text="the prince")
print(len(nameList))

范围限制参数 limit----只用于 findAll 方法。 find 其实等价于 findAll 的 limit 等于1 时的情形。

关键词参数 keyword----可以让你选择那些具有指定属性的标签,如:

allText = bsObj.findAll(id="text")
print(allText[0].get_text())

知识点二:

 get_text()函数功能为,去掉超链接、段落和标签都清除掉,只剩下一串不带标签的文字。

用 BeautifulSoup 对象查找你想要的信息,比直接在 HTML 文本里查找信息要简单得多。通常在你准备打印、存储和操作数据时,应该最后才使用 .get_text() 。一般情况下,你应该尽可能地保留 HTML 文档的标签结构。

补充知识点:

标签:如<html>、<span>、<head>、<body>、<abbr>等,一般查看网站源码,发现在符号“<>”里面的便为标签(我猜的!!如有错误请大神指正。)

参考文献:

《Python网络数据采集》

### 回答1: Python使用BeautifulSoup网络爬取数据可以通过以下步骤实现: 1. 导入所需的库,包括BeautifulSoup、requests和pandas等。 2. 使用requests库获取要爬取的网页的HTML代码。 3. 使用BeautifulSoup库解析HTML代码,提取所需的数据。 4. 将提取的数据存储到pandas的DataFrame中。 5. 使用pandas的to_excel方法将DataFrame中的数据写入Excel文件中。 下面是个简单的示例代码: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 获取网页HTML代码 url = 'https://www.example.com' response = requests.get(url) html = response.text # 解析HTML代码,提取所需数据 soup = BeautifulSoup(html, 'html.parser') data = [] for item in soup.find_all('div', class_='item'): title = item.find('h2').text price = item.find('span', class_='price').text data.append([title, price]) # 将数据存储到DataFrame中 df = pd.DataFrame(data, columns=['Title', 'Price']) # 将数据写入Excel文件中 df.to_excel('data.xlsx', index=False) ``` 这个示例代码爬取个名为example.com的网站,提取了网页中所有class为item的div元素的标题和价格信息,并将这些信息存储到个名为data.xlsx的Excel文件中。 ### 回答2: Python种十分流行的编程语言,它具有强大的数据处理和数据分析能力。在Python中,使用BeautifulSoup网络爬取数据可以让我们从网页中提取数据更加方便和高效。本文将介绍如何使用PythonBeautifulSoup库来爬取数据并生成Excel文档。 第步,我们需要安装PythonBeautifulSoup库。可以使用以下命令在终端或命令提示符中安装: ``` pip install beautifulsoup4 ``` 第二步,我们可以使用Python的requests库获取网页的HTML源代码。例如,可以使用以下代码获取百度首页的HTML源代码: ```python import requests response = requests.get('https://www.baidu.com') html = response.text ``` 第三步,我们需要使用BeautifulSoup来解析HTML源代码并提取所需的数据。例如,以下代码将提取百度首页的所有超链接: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html.parser') links = [] for a in soup.find_all('a'): link = a.get('href') if link is not None: links.append(link) ``` 第四步,我们可以使用Python的pandas库来生成Excel文档。例如,以下代码将百度首页的所有超链接生成Excel文档: ```python import pandas as pd df = pd.DataFrame({'Links': links}) df.to_excel('baidu_links.xlsx', index=False) ``` 以上就是使用PythonBeautifulSoup网络爬取数据并生成Excel文档的基本步骤。需要注意的是,在进行网络爬虫时,应该尊重网站的Robots协议并遵守相关法律法规。另外,在进行数据提取时也应该遵循数据隐私和安全的原则。 ### 回答3: Python中的BeautifulSoup库是个用于解析HTML和XML文件的工具,可以帮助我们在网络上获取数据并从中提取有用的信息。同时,Python也内置了些用于处理Excel文件的库,如openpyxl、xlwt等。 使用BeautifulSoup进行网络爬取的基本结构是首先通过Requests库访问目标网站,获得HTML源代码,之后使用BeautfulSoup库解析HTML源代码,提取所需的信息。在这个过程中,我们通常需要有足够的网络技能,了解HTTP请求和响应的相关参数和方法旦我们从网页中获取到所需的数据,我们就需要将这些数据存储在Excel表格中。使用Python处理Excel的库可以帮助我们方便地创建、读取、修改和保存Excel文件。我们通常需要了解Excel文件的基本结构、如何在Excel中创建、修改和删除数据,以及如何保存Excel文件等基础知识。 当我们了解这些基础知识后,我们可以开始使用Python来实现对网页数据爬取数据分析。我们可以使用BeautifulSoup解析网页,使用Excel库来创建和编辑Excel文件,最后将数据保存到新的Excel文件中。同时,在进行数据分析时,我们还可以使用其他Python库来处理和可视化数据,如Pandas、NumPy和Matplotlib。 总之,使用Python进行网页数据爬取并将其存储在Excel表格中需要具备基本的网络技能和对Excel文件的基本操作知识。在这个过程中,Python提供了许多有用的库帮助我们实现这些操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HPF4212

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值