Используйте flask для создания веб-сайта для тестирования сканеров Python и Excel.
Используйте flask для создания веб-сайта для тестирования сканеров Python и Excel.

Привет всем, приближается тайфун Мэйхуа! ! !

Сегодня мы делимся статьей о написании тестового веб-приложения на Python, а затем использовании Excel и Python для получения данных с написанного веб-сайта, что упрощает вам обучение сканированию.

текст

1. Создайте данные веб-сайта для тестирования.

Создайте веб-сайт и службу веб-API соответственно с помощью веб-инфраструктуры Python Flask.

1. Создайте веб-сайт

Создайте новый скрипт Python с именем «5-5-WebTable.py», чтобы создать простую веб-страницу, содержащую таблицу. Если читателю не интересен метод построения, вы можете пропустить следующий код и напрямую выполнить скрипт «5-5-WebTable.py», чтобы открыть веб-сайт.

(1) Установите пакет фляги.

Язык кода:javascript
копировать
pip install flask

(2) Создайте веб-страницу, содержащую таблицу.

Язык кода:javascript
копировать
from flask import Flask

app = Flask(__name__)  # Создать колбу Примеры веб-приложений

# Сопоставьте маршрут "/" с функцией table_info, функция возвращает HTML-код.
@app.route('/')
def table_info():
    
    return """<h2>HTMLПример таблицы,используется для предоставленияExcelиPythonчитать</h2>
    <table border="1">
      <caption>Таблица информации о пользователе</caption>
        <tbody><tr>
            <th>Имя</th>
            <th>пол</th>
            <th>возраст</th>
        </tr>
        <tr>
            <td>Просо</td>
            <td>женский</td>
            <td>22</td>
        </tr>
        ……….
    </tbody></table>"""

if __name__ == '__main__':
    app.debug = True  # Включить режим отладки
    app.run()  # Запустите, порт веб-сайта по умолчанию равен 5000.

Запустите веб-сайт с помощью команды «python ./5-5-WebTable.py», затем введите в браузере http://127.0.0.1:5000/, и появится содержимое веб-страницы, показанное на рисунке 1.

Рисунок 1. Тестовый веб-сайт, созданный с помощью Flask.

2. Создайте службу веб-API.

Создайте новый скрипт Python с именем «5-5-WebAPI.py» и используйте пакет flask_restplus для создания службы веб-API. Если читателю не интересен метод построения, вы можете пропустить следующий код и напрямую выполнить сценарий «5-5-WebAPI.py», чтобы открыть службу веб-API.

(1) Установите пакет flask_restplus.

Язык кода:javascript
копировать
pip install flask-restplus

(2) Импортируйте необходимые библиотеки и инициализируйте объекты приложения.

Язык кода:javascript
копировать
from flask import Flask
# Класс API — веб. Вход в приложение API необходимо инициализировать с помощью приложения Flask.
from flask_restplus import Api

# Класс Resource — это базовый класс для ресурсов, запрашиваемых HTTP.
from flask_restplus import Resource

# Класс полей используется для определения типа и формата данных.
from flask_restplus import fields

app = Flask(__name__)  # Создать колбу Примеры веб-приложений

# Создайте flask_restplus на основе приложения flask.  объект API
api = Api(app, version='1.0',
          title='Интегрированный в Excel анализ данных Python – WebAPI для тестирования',
          описание = 'WebAPI для тестирования', )

# Используйте функцию пространства имен, чтобы создать пространство имен для группировки ресурсов.
ns = api.namespace('ExcelPythonTest', описание = 'Эксель и Питон Web API-тест')
# Используйте функцию api.model для создания объектов модели.
todo = api.model('task_model', {
    'id': fields.Integer(readonly=True,
                         описание = 'Уникальный идентификатор задачи ETL'),
    'task': fields.String(required=True,
                          описание = 'Сведения о задаче ETL')
})

(3) Класс операций с данными веб-API, включая такие методы, как добавление, удаление, изменение и запрос.

Язык кода:javascript
копировать
class TodoDAO(object):

    def __init__(self):
        self.counter = 0
        self.todos = []

    def get(self, id):
        for todo in self.todos:
            if todo['id'] == id:
                return todo
        api.abort(404, «ETL-задачи {} ".format(id)) не существует

    def create(self, data):
        todo = data
        todo['id'] = self.counter = self.counter + 1
        self.todos.append(todo)
        return todo

# Создайте экземпляры операций с данными и создайте 3 части тестовых данных.
DAO = TodoDAO()
DAO.create({'task': 'Операция ETL-извлечения данных'})
DAO.create({'task': «Преобразование очистки ETL-данных»})
DAO.create({'task': 'Операция загрузки ETL-данных'})

(4) Создайте сопоставление маршрутизации веб-API.

Класс запроса ресурса HTTP наследуется от класса Resource, а затем сопоставляется с различными маршрутами, определяя методы HTTP, которые можно использовать.

Язык кода:javascript
копировать
@ns.route('/')  # Класс ресурса, соответствующий маршруту «/», — это TodoList, который можно запросить с помощью методов get и post.
class TodoList(Resource):
    @ns.doc('list_todos')  # Декоратор @doc соответствует информации документа API.
    @ns.marshal_list_with(todo)  # Декоратор @marshal_xxx форматирует и выводит данные модели
    def get(self):  # Определите метод get для получения всей информации о задаче.
        return DAO.todos

    @ns.doc('create_todo')
    @ns.expect(todo)
    @ns.marshal_with(todo, code=201)
    def post(self):  # Определите метод post для получения всей информации о задаче.
        return DAO.create(api.payload), 201

# маршрутизация/<int:id>Соответствующий класс ресурсовTodo,доступныйget、delete、метод put для выполнения запроса
@ns.route('/<int:id>')
@ns.response(404, «Не найдено соответствующих задач ETL»)
@ns.param('id', «Идентификатор задачи ETL»)
class Todo(Resource):
    @ns.doc('get_todo')
    @ns.marshal_with(todo)
    def get(self, id):
        return DAO.get(id)

    @ns.doc('delete_todo')
    @ns.response(204, «Задание ETL удалено»)
    def delete(self, id):
        DAO.delete(id)
        return '', 204

    @ns.expect(todo)
    @ns.marshal_with(todo)
    def put(self, id):
        return DAO.update(id, api.payload)

if __name__ == '__main__':
    app.run(debug=True, port=8000)  # Запустить Интернет API-сервис, порт 8000

(4) Запустите службу веб-API.

Запустите службу веб-API с помощью команды «python ./5-5-WebAPI.py» и введите «http://127.0.0.1:8000/» в браузере.

Появится список методов запроса службы веб-API, показанный на рис. 5-23.

Рис. 2. Список методов запроса службы WebAPI

2. Захват данных веб-страницы

Excel может сканировать данные веб-страницы с помощью функции «С веб-сайта» на вкладке «Данные». Python может использовать библиотеку запросов, пакет Beautiful Soup и платформу Scrapy для сканирования данных веб-страницы.

1. Захват через Excel

Нажмите функцию «Данные» → «Из других источников» → «С сайта». Существуют ограничения на данные веб-страницы, которые Excel может читать: данные динамических веб-страниц не могут быть распознаны автоматически, а данные, не являющиеся таблицами, не могут быть автоматически распознаны.

(1) Нажмите кнопку «Данные» → «Из других источников» → «С веб-сайта».

(2) Убедитесь, что веб-сайт, описанный в разделе 5.5.1, открыт.

(3) Введите URL-адрес веб-сайта «http://127.0.0.1:5000/».

Нажмите кнопку «Дополнительно», чтобы настроить более подробную информацию HTTP-запроса, а затем нажмите кнопку «ОК», как показано на рисунке 3.

Рис. 3. Настройте URL-адрес для чтения веб-сайта.

(4) Выберите данные для импорта в окне «Навигатор».

Как показано на рисунке 4, Excel автоматически распознает данные таблицы на веб-странице, выберите имя таблицы и нажмите кнопку «Загрузить».

Рис. 4. Excel автоматически распознает табличные данные на веб-страницах.

2. Получить с помощью Python

Ниже показано использование библиотеки запросов для сбора данных со всей веб-страницы, а затем использование Beautiful Soup для анализа веб-страницы. Для получения дополнительной информации читатели могут обратиться к файлу кода «5-5-web.ipynb» в этой книге.

(1) Чтение данных веб-страницы посредством запросов.

Язык кода:javascript
копировать
import requests #Импортировать пакет запросов
url ='http://127.0.0.1:5000/'

strhtml= requests.get(url) #Используйте метод get для запроса данных веб-страницы

(2) Анализ веб-страниц с помощью Beautiful Soup.

Язык кода:javascript
копировать
from bs4 import BeautifulSoup

soup = BeautifulSoup(strhtml.text)  # Используйте содержимое веб-страницы в качестве параметра для создания объекта супа.
table = soup.find('table')  # Поиск элементов таблицы на веб-страницах
table_body = table.find('tbody')  # Найти элементы tbody внутри элементов таблицы
data = []
rows = table_body.find_all('tr')  # Найти все элементы tr в таблице

for row in rows:  # Перебирать данные
    cols = row.find_all('td')
    cols = [ele.text.strip() for ele in cols]
data.append([ele for ele in cols if ele])
# Вывод результата: [[],
['Просо', 'женский', '22'],['Сяо Мин','мужской','23'],……

3. Вызовите службу веб-API.

Excel может вызвать службу веб-API через функцию «Собственный веб-сайт» на вкладке «Данные». Python может использовать библиотеку запросов, пакет Beautiful Soup и платформу Scrapy для вызова веб-API для получения данных.

1. Звонок с помощью Excel

(1) Убедитесь, что служба веб-API, описанная в разделе 5.5.1, запущена.

(2) Введите URL-адрес, соответствующий методу веб-API:

http://127.0.0.1:8000/ExcelPythonTest/。

(3) Обработать возвращенные данные.

После вызова службы веб-API данные возвращаются в формате JSON, и данные JSON обрабатываются в соответствии с методом, представленным в разделе 5.4.3.

2. Звонок с использованием Python

Используйте библиотеку запросов для вызова метода веб-API, а затем обработайте возвращенные данные JSON. Для получения дополнительной информации читатели могут обратиться к файлу кода «5-5-api.ipynb» в этой книге.

Язык кода:javascript
копировать
import requests                             #Импортировать пакет запросов
url ='http://127.0.0.1:8000/ExcelPythonTest/'

strhtml= requests.get(url)            #Используйте метод get для получения данных веб-страницы

import pandas as pd

frame= pd.read_json(strhtml.text)  #Используйте функцию read_json в пакете Pandas
print(frame)
#Вывод результата:
id       task
0 1 Операции ETL-извлечения данных
1 2 Преобразование очистки ETL-данных
2 3 Операция загрузки ETL-данных

3. Сравнение методов сбора интернет-данных Excel и Python.

В таблице 1 показано сравнение методов сканирования данных Интернета с помощью Excel и Python. Следует отметить, что функция Excel по получению данных из Интернета не идеальна.

Таблица 1. Сравнение методов Excel и Python для сканирования данных Интернета

заявление:Эта статья выбрана из издательства Пекинского университета.《Использование Excel и Python для анализа данных с нуля》книга,слегка измененный,Публикуется здесь с разрешения издателя.

Введение к содержанию «Использование Excel и Python для анализа данных с нуля» знакомит с методами и этапами анализа данных, а также реализует и сравнивает их с помощью Excel и Python соответственно. С помощью «Использование Excel и Python для анализа данных с нуля», с одной стороны, вы можете расширить свое понимание функций Excel, а с другой стороны, вы можете изучить и освоить основные операции Python.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose