Привет всем, приближается тайфун Мэйхуа! ! !
Сегодня мы делимся статьей о написании тестового веб-приложения на Python, а затем использовании Excel и Python для получения данных с написанного веб-сайта, что упрощает вам обучение сканированию.
текст
Создайте веб-сайт и службу веб-API соответственно с помощью веб-инфраструктуры Python Flask.
1. Создайте веб-сайт
Создайте новый скрипт Python с именем «5-5-WebTable.py», чтобы создать простую веб-страницу, содержащую таблицу. Если читателю не интересен метод построения, вы можете пропустить следующий код и напрямую выполнить скрипт «5-5-WebTable.py», чтобы открыть веб-сайт.
(1) Установите пакет фляги.
pip install flask
(2) Создайте веб-страницу, содержащую таблицу.
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.
pip install flask-restplus
(2) Импортируйте необходимые библиотеки и инициализируйте объекты приложения.
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, включая такие методы, как добавление, удаление, изменение и запрос.
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, которые можно использовать.
@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
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) Чтение данных веб-страницы посредством запросов.
import requests #Импортировать пакет запросов
url ='http://127.0.0.1:5000/'
strhtml= requests.get(url) #Используйте метод get для запроса данных веб-страницы
(2) Анализ веб-страниц с помощью Beautiful Soup.
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'],……
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» в этой книге.
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-данных
В таблице 1 показано сравнение методов сканирования данных Интернета с помощью Excel и Python. Следует отметить, что функция Excel по получению данных из Интернета не идеальна.
Таблица 1. Сравнение методов Excel и Python для сканирования данных Интернета
заявление:Эта статья выбрана из издательства Пекинского университета.《Использование Excel и Python для анализа данных с нуля》книга,слегка измененный,Публикуется здесь с разрешения издателя.
Введение к содержанию «Использование Excel и Python для анализа данных с нуля» знакомит с методами и этапами анализа данных, а также реализует и сравнивает их с помощью Excel и Python соответственно. С помощью «Использование Excel и Python для анализа данных с нуля», с одной стороны, вы можете расширить свое понимание функций Excel, а с другой стороны, вы можете изучить и освоить основные операции Python.