pandas 处理数据一(抽取特定URL,正则匹配)

本文介绍了一种使用Python pandas和正则表达式进行大规模URL数据匹配的方法,旨在统计第一个文件中的URL在第二个文件中出现的次数,通过去重和排序优化了数据处理流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要是想查找第一个url文件中的url在第二个文件中url中有多少个和它匹配。
第一个文件截图(共23个特征数据):
在这里插入图片描述
第二个文件截图,共6万多URL数据:
在这里插入图片描述
结果截图:
在这里插入图片描述

import pandas as pd
import numpy as np
df = pd.read_csv('cluster_all.csv')
#一次性删除指定列
x=[0,2]
df.drop(df.columns[x], axis=1, inplace=True)
df.columns = ['url','y_pre_20']
#去重
temp_df = df.drop_duplicates(subset=['url'], keep='first', inplace=False)#以url删除重复行
#转换成df格式的数据
data = pd.DataFrame(temp_df)

df_notRepetion = data.sort_values(["y_pre_20"],ascending=True)#以y_pre_20列排序
s_noRepetion_url = df_notRepetion.url
s_notRepetion = pd.Series(s_noRepetion_url)
s_allUrl = df.url
s_all = pd.Series(s_allUrl)
feature_df =  pd.read_csv('url.csv')
fea = feature_df.URL
s_fea = pd.Series(fea)
url_fea_list = s_fea.tolist()
url_all_list = s_all.tolist()
url_notRepetion_list = s_notRepetion.tolist()
count_dict = {}
import re
for var in url_fea_list:
    k=0
    for i in url_all_list:     
        #str_list = var.split('/')
        str_i_list = i.split(' ')
        #var_str = " ".join(str_list)
        i_str = "/".join(str_i_list)
        s = r'.*?'+var+'.*'
        ifmatch = re.search(pattern=s, string=i_str)
        if ifmatch:
            k=k+1
    count_dict.update(var=k)
    print(var,k)       
### 使用Python RequestsPandas库抓取及处理小红书数据 #### 导入所需库 为了完成此任务,需要先安装并导入`requests`用于发起HTTP请求以及`pandas`用于数据分析与处理。 ```python import requests import pandas as pd ``` #### 发起GET请求获取页面HTML源码 构建目标URL并向其发送GET请求以获得响应对象。注意,在实际操作中可能还需要设置headers模拟浏览器行为,防止被反爬机制阻止访问[^2]。 ```python url = 'https://www.xiaohongshu.com/discovery/item' headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } response = requests.get(url, headers=headers) html_content = response.text ``` #### 解析HTML内容定位所需信息 由于这里未提及具体要抓取的信息种类(如帖子标题、作者名等),因此假设需求是从特定结构化的HTML片段里抽取某些字段。通常情况下会借助正则表达式或更推荐使用的BeautifulSoup来进行DOM解析;然而考虑到仅限于使用`requests``pandas`的要求,则可以考虑直接查找模式匹配字符串的方式提取感兴趣的部分。不过这种方法较为原始且不够灵活稳定,对于复杂网站不建议采用[^4]。 #### 将提取的数据转换成DataFrame格式 旦有了初步整理好的列表形式的数据集,就可以很方便地将其转化为`pandas.DataFrame`以便后续分析: ```python data_list = [...] # 假设这是之前通过某种方式得到的目标条目集合 df = pd.DataFrame(data_list) ``` #### 数据清洗与预处理 根据实际情况对收集来的原始资料实施必要的清理工作,比如去除重复项、填补缺失值或是调整列顺序等等。这步骤至关重要,它直接影响着最终结果的质量好坏[^3]。 #### 存储为Excel文件 最后把经过加工后的表格保存下来供日后查阅: ```python output_file_path = './xiaohongshu_data.xlsx' df.to_excel(output_file_path, index=False) ``` 需要注意的是,上述流程只是个非常基础的概念框架展示,并不代表可以直接运行的有效代码。针对像小红书这样具有定防护措施的平台来说,单纯依靠简单的HTTP GET请求往往难以成功取得预期的内容。此外,频繁的大规模自动化采集活动也可能违反服务条款甚至触犯法律,请务必谨慎行事并遵循各站点的相关规定[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值