当前位置: 首页 > news >正文

Beautiful Soup爬取数据html xml

简介

Beautiful Soup是一个Python库,用于从HTML或XML文件中提取数据。
它提供了一种简单而灵活的方式来解析和遍历HTML或XML文档,并提供了一些有用的方法来提取所需的数据。

安装

pip install beautifulsoup4

使用

  1. 导入库:在Python脚本的开头,导入Beautiful Soup库。
from bs4 import BeautifulSoup
  1. 读取HTML或XML文档:使用适当的方法读取HTML或XML文档,并将其存储在一个变量中。您可以从文件中读取文档,也可以直接将文档内容作为字符串传递给Beautiful Soup。
# 从文件中读取HTML文档
with open('example.html', 'r') as f:
    html_doc = f.read()

或者直接传递HTML字符串

html_doc = '<html><body><h1>Hello, World!</h1></body></html>'
  1. 创建Beautiful Soup对象:使用Beautiful Soup库创建一个BeautifulSoup对象,将文档内容和解析器类型作为参数传递给它。
soup = BeautifulSoup(html_doc, 'html.parser')
  1. 解析和提取数据:使用Beautiful Soup提供的方法和属性,解析和提取您需要的数据。您可以使用标签名、类名、属性等方式来定位和选择元素。

# 通过标签名选择元素
title = soup.h1
print(title.text)  # 输出元素文本内容

# 通过类名选择元素
paragraphs = soup.find_all('p')
for p in paragraphs:
    print(p.text)

# 通过属性选择元素
links = soup.find_all('a', href=<a href="http://example.com" class="underline" target="_blank">Click this URL</a>)
for link in links:
    print(link['href'])

举例

URL爬数据,弄两万用户左右,然后还需要follower和following的数量
https://www.personalitycafe.com/members/ .html
保存在csv中

  1. 导入所需的库:

import requests
from bs4 import BeautifulSoup
import csv
  1. 发送HTTP请求并创建Beautiful Soup对象:

url = <a href="https://www.personalitycafe.com/members/" class="underline" target="_blank">Click this URL</a>
response = requests.get(url)
html_doc = response.text
soup = BeautifulSoup(html_doc, 'html.parser')
  1. 解析用户列表并提取所需信息:

user_list = soup.find_all('li', class_='member')

data = []
for user in user_list:
    username = user.find('a', class_='username').text
    follower_count = user.find('dd', class_='follow_count').text
    following_count = user.find('dd', class_='following_count').text
    data.append([username, follower_count, following_count])
  1. 将数据保存到CSV文件:

filename = 'user_data.csv'

with open(filename, 'w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerow(['Username', 'Follower Count', 'Following Count'])
    writer.writerows(data)

print(f"数据已保存到 {filename} 文件中。")

这样,爬取到的用户数据将会保存在名为 “user_data.csv” 的CSV文件中,包括用户名、follower数量和following数量。

请注意,根据目标网站的结构和HTML标记,可能需要进一步的调整和修改代码以正确提取所需的数据。
要正确提取所需的数据,需要根据目标网站的结构和HTML标记进行进一步的调整和修改代码。

Beautiful Soup

一些常用的Beautiful Soup操作和技巧

  1. 使用标签名称提取元素:
elements = soup.find_all('tag_name')
  1. 使用CSS选择器提取元素:
elements = soup.select('css_selector')
  1. 提取元素的文本内容:
text = element.get_text()
  1. 提取元素的属性值:
attribute_value = element['attribute_name']

相关文章:

  • 分时函数解决一次性加载大量dom造成的卡顿假死
  • opencv(1):创建和显示窗口, 读取保存图片
  • 机器学习-特征选择:使用Lassco回归精确选择最佳特征
  • (三)什么是Vite——Vite 主体流程(运行npm run dev后发生了什么?)
  • 阿里云C++二面面经
  • JZ22:链表中倒数第k个结点
  • 分享篇:最近在研究的AIGC内容
  • 论文笔记--Baichuan 2: Open Large-scale Language Models
  • SpringCloud GateWay自定义过滤器之GatewayFilter和AbstractGatewayFactory
  • 计算机视觉的应用16-基于pytorch框架搭建的注意力机制,在汽车品牌与型号分类识别的应用
  • 【QT基础入门】QT中的容器类:QList
  • 机器人制作开源方案 | 智能家庭防护机器人
  • 精益管理3个阶段,如何实现高效企业管理?
  • 【工艺库】SMIC数字后端工艺库
  • Linux系统编程——进程中vfork函数
  • vue3使用element-plus
  • Python---数据序列中的公共方法
  • 性能测试 —— Jmeter接口处理不低于200次/秒-场景
  • table表格的某一行数据如何回填
  • spark调优案例分享
  • 中期选举后第三势力成“莎拉弹劾案”关键,菲律宾权斗更趋复杂激烈
  • 龚正市长调研闵行区,更加奋发有为地稳增长促转型,久久为功增强发展后劲
  • 丰富“互换通”产品类型,促进中国金融市场高水平对外开放
  • 最高人民法院原副院长唐德华逝世,享年89岁
  • 澎湃·镜相第二届非虚构写作大赛初选入围名单公示
  • 新闻1+1丨城市,如何对青年更友好?