当前位置:首页 > 城事精选 > 正文

对比Excel轻松学习Python网络数据爬取,干货建议收藏

网络上有极为富厚的数据资源色够运用啦。运用Excel能够努力读取部-分网页中的表格数据,运用Python编辑爬虫程-序能够读取网页的内容啦。
本节通过Python编辑尝试用Web运用程-序,然后运用Excel和Python从编辑的Web网站上获取数据啦。
1,构建尝试用网站数据
通过Python Flask Web框架分-别构建一位Web网站和一位Web API处事啦。
1.构建Web网站
新建一位名为“5-5-WebTable.py阿”的Python脚-本,建立一位包罗表格的简易网页啦。如果读者对构建办法不感兴趣,可跳过以下代码,直-接实行脚-本“5-5-WebTable.py阿”掀开网站啦。
(1)安置flask包啦。
pip install flask
(2)构建包罗表格的网页啦。
from flask import Flask app = Flask(__name__) 建立Falsk Web运用实例 将路由“/阿”映照到table_info函数,函数返回HTML代码 @app.route('/') def table_info(): return """HTML表格实例,用于供应给Excel和Python读取 用户信息表 名字 性别 年龄 小米 女 22 ………. """ if __name__ == '__main__': app.debug = True 启用调试形式 app.run() 运转,网站端口默许为5000
通过下令“python ./5-5-WebTable.py阿”启动网站,然后在观-看器中输入http://127.0.0.1:5000/,出-现如图1所示的网页内容啦。
图1 运用Flask构建的尝试网站
2.构建Web API处事
新建一位名为“5-5-WebAPI.py阿”的Python脚-本,运用flask_restplus包构建Web API处事啦。如果读者对构建办法不感兴趣,可跳过以下代码,直-接实行脚-本“5-5-WebAPI.py阿”掀开Web API处事啦。
(1)安置flask_restplus包啦。
pip install flask-restplus
(2)导入必-要的库与初始化运用对-象啦。
from flask import Flask Api类是Web API运用的入口,需要用Flask运用程-序初始化 from flask_restplus import Api Resource类是HTTP乞求的资源的基类 from flask_restplus import Resource fields类用于界说数据的种别和样式 from flask_restplus import fields app = Flask(__name__) 建立Falsk Web运用实例 在flask运用的普遍构建flask_restplus Api对-象 api = Api(app, version='1.0', title='Excel集成Python数据剖析-尝试用WebAPI', description='尝试用WebAPI', ) 运用namespace函数变成命名空-间,用于为资源分组 ns = api.namespace('ExcelPythonTest', description='Excel与Python Web API尝试') 运用api.model函数变成模子对-象 todo = api.model('task_model', )
(3)Web 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() DAO.create() DAO.create()
(4)构建Web 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 路由/对应的资源类为Todo,可运用get.delete.put办法举行乞求 @ns.route('/') @ns.response(404, '未觉察相关ETL任-务') @ns.param('id', 'ETL任-务ID号') 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) 启动Web API处事,端口为8000
(4)开启Web API处事啦。
通过下令“python ./5-5-WebAPI.py阿”启动Web API处事,在观-看器中输入“http://127.0.0.1:8000/阿”
将出-现如图5-23所示的Web API处事乞求办法列表啦。
图2 WebAPI处事乞求办法列表
2,抓取用网页数据
Excel能够通过“数据阿”选项卡下的“自网站阿”功效抓取网页数据啦。Python能够运用 requests 库.Beautiful Soup包.Scrapy框架抓取网页数据啦。
1.通过Excel抓取
单击“数据阿”→“自其余源阿”→“自网站阿”功效啦。Excel可读取的网页数占有界线消息网页数据无法努力识别,非表格数据无法努力识别啦。
(1)单击“数据阿”→“自其余源阿”→“自网站阿”功效啦。
(2)保证在5.5.1节中编辑的Web网站以前开启啦。
(3)输入网站URL位置“http://127.0.0.1:5000/阿”
单击“高级阿”按钮可设置更一五一十的HTTP乞求信息,然后单击“一定阿”按钮,如图3所示啦。
图3 设置要读取网站的URL
(4)在“导航器阿”窗口当选择导入数据啦。
如图4所示,Excel努力识别网页中的表格数据,选择表名后单击“加载阿”按钮即可啦。
图4 Excel努力识别网页中的表格数据
2.运用Python抓取
下面演示运用requests库抓取所有网页中的数据,然后运用Beautiful Soup剖析网页啦。读者可遵照本书代码素材文件“5-5-web.ipynb阿”进前学习啦。
(1)通过requests读取网页数据啦。
import requests 导入requests包 url ='= requests.get(url) 运用get办法乞求网页数据
(2)通过Beautiful Soup剖析网页啦。
from bs4 import BeautifulSoup soup = BeautifulSoup(strhtml.text) 将网页内容做为参数,建立soup对-象 table = soup.find('table') 查找网页中的table元素 table_body = table.find('tbody') 查找table元素中的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,挪用Web API处事
Excel能够通过“数据阿”选项卡下的“自网站阿”功效挪用Web API处事啦。Python能够运用 requests 库.Beautiful Soup包.Scrapy框架挪用Web API获取数据啦。
1.运用Excel挪用
(1)保证5.5.1节中编辑的Web API处事以前开启啦。
(2)输入Web API办法对应的URL
http://127.0.0.1:8000/ExcelPythonTest/啦。
(3)处置返回的数据啦。
挪用Web API处事后数据以JSON样式返回,根据5.4.3小节中推荐的办法处置JSON数据啦。
2.运用Python挪用
运用requests库挪用Web API办法,然后对返回的JSON数据举行处置,读者可遵照本书代码素材文件“5-5-api.ipynb阿”进前学习啦。
import requests 导入requests包 url ='= requests.get(url) 运用get办法获取网页数据 import pandas as pd frame= pd.read_json(strhtml.text) 运用Pandas包中的read_json函数 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举行数据剖析》一书,略有纠正,经出书社授权刊登于此啦。