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

轻量级 python 爬虫 表格

轻量级 Python 爬虫实现表格

流程图

flowchart TD
    Start --> 输入URL
    输入URL --> 发送请求
    发送请求 --> 解析HTML
    解析HTML --> 提取表格数据
    提取表格数据 --> 存储数据
    存储数据 --> End

类图

classDiagram
    class Spider {
        - url
        - html
        - table_data
        + send_request()
        + parse_html()
        + extract_table_data()
        + store_data()
    }

教程

步骤一:发送请求

首先,我们需要发送一个请求来获取网页的 HTML 内容。我们可以使用 requests 库来实现这一步骤。

import requests

class Spider:
    def __init__(self, url):
        self.url = url
        self.html = None

    def send_request(self):
        response = requests.get(self.url)
        self.html = response.text

步骤二:解析HTML

接下来,我们需要解析 HTML 内容,以便后续提取表格数据。我们可以使用 BeautifulSoup 库来实现这一步骤。

from bs4 import BeautifulSoup

class Spider:
    def __init__(self, url):
        self.url = url
        self.html = None
        self.soup = None

    def parse_html(self):
        self.soup = BeautifulSoup(self.html, 'html.parser')

步骤三:提取表格数据

在这一步中,我们需要从 HTML 中提取出表格数据。我们可以通过查找表格标签来实现这一步骤。

class Spider:
    def __init__(self, url):
        self.url = url
        self.html = None
        self.soup = None
        self.table_data = None

    def extract_table_data(self):
        table = self.soup.find('table')
        rows = table.find_all('tr')
        
        data = []
        for row in rows:
            cols = row.find_all('td')
            cols = [col.text.strip() for col in cols]
            data.append(cols)
        
        self.table_data = data

步骤四:存储数据

最后,我们可以将提取到的表格数据存储起来,可以存储为 CSV 文件或者数据库。

import csv

class Spider:
    def __init__(self, url):
        self.url = url
        self.html = None
        self.soup = None
        self.table_data = None

    def store_data(self):
        with open('table_data.csv', 'w', newline='') as file:
            writer = csv.writer(file)
            for row in self.table_data:
                writer.writerow(row)

完整代码

import requests
from bs4 import BeautifulSoup
import csv

class Spider:
    def __init__(self, url):
        self.url = url
        self.html = None
        self.soup = None
        self.table_data = None

    def send_request(self):
        response = requests.get(self.url)
        self.html = response.text

    def parse_html(self):
        self.soup = BeautifulSoup(self.html, 'html.parser')

    def extract_table_data(self):
        table = self.soup.find('table')
        rows = table.find_all('tr')
        
        data = []
        for row in rows:
            cols = row.find_all('td')
            cols = [col.text.strip() for col in cols]
            data.append(cols)
        
        self.table_data = data

    def store_data(self):
        with open('table_data.csv', 'w', newline='') as file:
            writer = csv.writer(file)
            for row in self.table_data:
                writer.writerow(row)

# 使用方法
url = '
spider = Spider(url)
spider.send_request()
spider.parse_html()
spider.extract_table_data()
spider.store_data()

通过以上教程,你可以轻松地实现一个轻量级的 Python 爬虫来提取表格数据。希望对你有所帮助!


https://www.xamrdz.com/web/2qp1942474.html

相关文章: