如何用bs4爬取数据并保存到csv文件
时间: 2023-05-24 16:06:23 浏览: 273
以下是一个示例代码,它演示了如何使用bs4从网站中提取数据并将其保存到CSV文件中:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 向网站发送请求
url = 'https://www.example.com/'
response = requests.get(url)
# 创建BeautifulSoup对象
soup = BeautifulSoup(response.text, 'html.parser')
# 从网站中提取数据
data = []
table = soup.find('table') # 如果有数据表格,可以使用这一行提取
rows = table.find_all('tr') # 获取所有行
for row in rows:
cols = row.find_all('td')
cols = [col.text.strip() for col in cols]
data.append(cols)
# 将数据保存到CSV文件中
filename = 'output.csv'
with open(filename, 'w', newline='') as csv_file:
writer = csv.writer(csv_file)
writer.writerows(data)
```
在这个例子中,我们首先向指定的网站发送请求,并使用BeautifulSoup创建一个对象来解析响应文本。我们通过寻找表格标记(<table>)来定位数据,并使用find_all方法来获取表格中的所有行。我们使用strip函数删除每个单元格中的空格,并将每个行的列添加到一个称为“data”的列表中。
最后,我们使用csv模块中的writerow方法向名为“output.csv”的文件写入数据。我们使用with语句创建一个csv文件对象,并向对象调用我们可以写入数据的writerows方法。在写入CSV文件之前,我们使用newline=''参数设定新行的行为,以确保在保存文件时,文件的格式正确。
请注意,这个代码示例演示了一个基本的例子,并假定数据以表格形式存储在网站中。如果数据以不同的方式出现或需要更复杂的处理,您可能需要使用其他技术或工具。
阅读全文