【Python】response数据看起来是Dataframe表但实际是text格式的处理方法

【Python】response数据看起来是DataFrame表但实际是text格式的处理方法

情况描述:

response返回的数据类似于这样
response返回的数据类似于这样

处理思路:

1、通过split()函数,以空格 \t或\n 拆分,会得到一个列表类似这样:
在这里插入图片描述 2、再通过list的切片功能选取每一行的数据

    response = requests.get(url=url, headers=http_headers).text
    response = re.split('[\r\t]', response)
    response_list=[response[i:i+13] for i in range(0,len(response),14)]

3、得到[[],[],[]]列表包含列表的数据类型,然后使用pandas的Dataframe方法转化为DF形式的表格

df=pd.DataFrame(data=response_list[1:-1], columns=response_list[0])

得到下面的形式
在这里插入图片描述

### 数据爬取、清洗和可视化的步骤与工具 #### 一、环境准备 为了确保 Python 和 Xshell 的协同工作正常运行,需先完成以下准备工作: - **Python 安装**:确认已安装最新版本的 Python 并配置好 `pip` 工具。如果存在多个 Python 版本,则需要明确指定 PyCharm 中使用的解释器版本[^1]。 - **PyCharm 配置**:在 PyCharm 中设置项目解释器路径,并通过内置包管理功能安装必要的库(如 `requests`, `beautifulsoup4`, `pandas`, `matplotlib` 等)。这可以避免因多版本冲突导致模块未加载的情况。 #### 二、数据爬取 利用 Python 实现网络数据抓取的主要工具有以下几个: - **Requests 库**用于发送 HTTP 请求并接收响应内容。例如可以通过如下代码获取目标页面的数据: ```python import requests url = 'https://example.com' headers = {'User-Agent': 'Mozilla/5.0'} # 设置请求头防止被反爬虫机制拦截 response = requests.get(url, headers=headers) if response.status_code == 200: response.encoding = 'utf-8' # 解决中文乱码问题 print(response.text) else: print(f"Failed to retrieve data: {response.status_code}") ``` - 如果遇到复杂的 HTML 结构解析需求,可引入 **BeautifulSoup** 来提取所需字段: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(response.text, 'html.parser') data_elements = soup.find_all('div', class_='target-class') # 查找特定标签及其属性 for element in data_elements: print(element.text.strip()) ``` #### 三、数据清洗 原始采集到的数据往往含有噪声或冗余信息,因此需要对其进行预处理以便后续分析操作更加高效准确无误。常用技术包括但不限于: - 去除空白字符及特殊符号; - 统一日期时间格式达方式; - 处理缺失值填补策略等。 借助 Pandas 可轻松达成以上目的示例代码片段如下所示: ```python import pandas as pd df = pd.DataFrame(data_elements) # 将列表转换成 DataFrame 对象便于批量修改列名索引等内容 df.columns = ['content'] # 自定义头名称 df['cleaned_content'] = df['content'].apply(lambda x: str(x).strip().replace('\n', '')) # 清洗字符串去除多余换行符空格 missing_values_count = df.isnull().sum() # 计算每列中NULL的数量统计情况 filled_df = df.fillna(method='ffill') # 向前填充丢失项保持连续性逻辑关系不变动 ``` #### 四、远程服务器连接 (Xshell 使用场景) 对于大规模分布式计算任务或者存储于云端数据库内的海量资料访问而言,单独依靠本地机器显然力不从心。此时就需要运用 SSH 协议建立安全通道来操控远端主机上的资源文件等等。具体流程概述为: 1. 打开 Xshell 新建会话窗口输入对应 IP 地址用户名密码参数登录成功后即可执行 Linux Shell Command Line Instructions 如 cd ls cp mv rm tar gzip unzip wget curl ftp sftp rsync etc... 2. 在服务端部署 Scrapy 或者其他框架构建定时调度程序定期更新增量部分减少重复劳动提高效率降低成本风险系数。 3. 把经过初步筛选整理后的半成品导出 CSV JSON XML TXT等形式再传回至个人电脑继续深入挖掘潜在价值所在之处。 #### 五、数据可视化展示效果优化建议 最后一步就是把最终成果直观形象地呈现给观众看懂理解接受采纳行动起来吧!Matplotlib Seaborn Plotly Bokeh Altair 这些都是不错的选择各有千秋适合不同场合应用领域广泛深受开发者喜爱追捧推崇备至呢~ 下面给出简单折线图绘制例子供参考学习模仿练习提升技能水平达到熟能生巧境界哦~ ```python import matplotlib.pyplot as plt plt.figure(figsize=(10, 6)) plt.plot(df.index, filled_df['cleaned_content'], label="Clean Data", color="blue") plt.title("Data Visualization Example Using Matplotlib") plt.xlabel("Index Position") plt.ylabel("Content Value After Cleaning Processiong Steps Applied.") plt.legend() plt.show() ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值