Ownips+Coze海外社媒数据分析实战指南

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 本文介绍了在社交媒体数据采集和分析中的实践方法,特别强调了使用IPS代理的重要性。社交媒体如Twitter、Facebook等提供了丰富的数据资源。文章推荐了Ownips,这是一家提供高质量静态ISP代理服务的公司,用户可以选择需要的地区IP,并通过API或账号定向访问配置使用。文章通过一个Twitter趋势数据采集的案例,展示了如何利用Ownips代理IP和Python的requests库以及BeautifulSoup解析HTML来获取和解析数据。此外,文章还提到了如何在Coze平台上创建数据采集插件和Twitter Bot,以实现自动化和智能化的数据分析。

一、引言

在当今数字化浪潮中,社交媒体已深深融入人们的日常生活,并为企业、研究机构及个体研究者提供了宝贵的数据资源。从Twitter、Facebook、Instagram、LinkedIn等多元化平台高效采集数据,并进行深入分析,我们能够洞察用户行为、市场动向、公众情感等关键信息。这些信息对于市场分析、社会研究、品牌监控及其他各种分析工作至关重要。

本文旨在通过案例,探讨在社交媒体数据采集与分析的实战方法,为研究和工作提供坚实的数据支撑。

二、IPS代理简介

在采集社交媒体数据之前,我们首先要解决一个核心问题:社交媒体平台对IP的属性做判断,导致无法高效采集数据。一方面,社交媒体平台在推送时会确保所推送的内容与当地的文化和用户偏好相符合,另一方面,社交媒体平台会检测和阻止异常流量,一旦单次访问次数过多,便可能触发强制验证。

这时,ISP代理的引入就显得尤为重要。ISP代理首先能够模拟地区,有效保护在线隐私,减少被追踪和识别。其次,它能够确保用户顺畅地访问所需内容,提升数据获取的效率和便捷性。此外,ISP代理还提供了额外的安全层,能够过滤钓鱼网站和陷阱类的内容,有效防止恶意攻击和数据泄露的风险。在企业环境中,其还能够显著加快网页访问速度,降低带宽使用,同时通过负载均衡技术提升网络性能和稳定性。

三、应用实践——基于Ownips和coze的社媒智能分析助手

3.1、Twitter趋势数据采集

3.1.1、Twitter趋势数据接口分析

打开推特网页我们可以发现,整个趋势榜是一个div盒子。

每一个项目都是一个子div,包含在主div下。而文字部分包含在其中的一个span下。于是可以得到结构如下:

其中,

这个

容器包含了所有的趋势数据。每个趋势项由类似于

... 趋势内容 ...

的结构组成。例如,Celtics 表示一个趋势项,内容为“Celtics”。

依据结构可以写出xpath如下:

//div[@aria-label="时间线:探索"]/div/div//div/div/div/div/div[2]/span

测试一下,可以发现确实选出了所有的项目,后期只要提取其中的文字即可。

3.1.2、Ownips原生住宅IPS选取与配置

点击获取代理,即可使用刚才购买的IP,这里支持两种使用方式,一种是通过API自动获取,一种是通过设置账号定向访问。这里我们先选择API方式。选定国家和地区,点击生成链接即可在右侧得到登录链接。接下来我们尝试获取代理。点击账户认证获取,选择国家和地区,之后要选择认证账户,这里我们先去创建一个。

在账密认证中选择认证账户管理,选择添加。设置好账号密码即可。

回到账户获取代理中,选择刚才创建的账号,即可使用。

3.1.3、数据采集

这里我们采用python的request库获取网页,并通过xpath解析页面数据,最后保存为txt文件。

首先,导入必要的模块,包括requests用于发送HTTP请求,BeautifulSoup用于解析HTML,_thread用于多线程处理,和time用于时间延迟。之后需要设置模拟浏览器的请求头和目标URL。

import requests as rq
from bs4 import BeautifulSoup
import _thread
import time
  
headers = {
     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0",
 }
api = 'https://api-proxy.ownips.com/getIsp?num=1&type=1&lb=1&sb=0&flow=1®ions=tw&attribute=native_isp'
url = 'https://x.com/explore/tabs/keyword'

procPage函数使用BeautifulSoup解析HTML内容,其中,首先通过BeautifulSoup(page, 'html.parser')来创建一个soup对象,这个对象会解析传入的HTML页面page,然后,使用xpath方法来定位具有特定aria-label属性的子元素。

def procPage(page):
    soup = BeautifulSoup(page, 'html.parser')
    divs = soup.xpath('//div[@aria-label="时间线:探索"]/div/div')
    r = []
    for i in range(2, len(divs)):
        r.append(divs[i].xpath('//div/div/div/div/div[2]/span//text()'))
    print("解析完毕")
    return r

testUrl函数定义了一个名为 proxy 的字典,用于设置代理服务器信息,通过代理发送GET请求到目标URL,这个请求包含了之前定义的 headers 字典,用于模拟浏览器发送请求,以避免被目标网站拒绝。最后,函数调用 procPage 函数来解析网页内容。它将 res.content(即响应内容的二进制数据)作为参数传递给 procPage ,并将结果写入一个文件。此处隐去ip消息。

def testUrl():
     proxy = {'http': 'http://yyyyyyy:yyy3214@38.182.xxx.xxx:2333',
              'https': 'https://yyyyyyy:yyy3214@38.182.xxx.xxx:2333',
              }
     try:
         res = rq.get(url=url, headers=headers, proxies=proxy)
         print("获取成功,正在解析")
         d = procPage(res.content)
         with open('trend.txt', 'w', encoding='utf-8') as f:
            f.write(str(d))
  
    except Exception as e:
        print("访问失败", e)

主线程启动10个并发线程,每个线程调用testUrl,并在每个线程启动后延迟0.1秒,最终主线程延迟10秒以确保所有子线程完成任务。

for port in range(0, 10):
     _thread.start_new_thread(testUrl, ())
     time.sleep(0.1)
  
 time.sleep(10)

运行一下,得到结果如下:

完整代码如下:

import requests as rq
from bs4 import BeautifulSoup
import _thread
import time
  
headers = {
     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0",
 }
api = 'https://api-proxy.ownips.com/getIsp?num=1&type=1&lb=1&sb=0&flow=1®ions=tw&attribute=native_isp'
url = 'https://x.com/explore/tabs/keyword'
 
 
def procPage(page):
     soup = BeautifulSoup(page, 'html.parser')
     divs = soup.xpath('//div[@aria-label="时间线:探索"]/div/div')
     r = []
     for i in range(2, len(divs)):
         r.append(divs[i].xpath('//div/div/div/div/div[2]/span//text()'))
     print("解析完毕")
     return r
  
  
def testUrl():
     proxy = {'http': 'http://yyyyyyy:yyy3214@38.182.xxx.xxx:2333',
              'https': 'https://yyyyyyy:yyy3214@38.182.xxx.xxx:2333',
              }
     try:
         res = rq.get(url=url, headers=headers, proxies=proxy)
         print("获取成功,正在解析")
         d = procPage(res.content)
         with open('trend.txt', 'w', encoding='utf-8') as f:
             f.write(str(d))
  
     except Exception as e:
         print("访问失败", e)
  
  
  
for port in range(0, 10):
     _thread.start_new_thread(testUrl, ())
     time.sleep(0.1)
  
time.sleep(10)

除了趋势数据,将url 替换后,还可以采集以下数据:

3.2、基于Ownips和Coze的社媒智能助手

3.2.1、Ownips数据采集插件集成

设计好数据采集流程后,我们可以登录https://www.coze.com/home,进入coze官网,点击Personal-Plugins-Create plugin创建插件。

插件就是一个支持调用的服务端接口,可以将自己的 API 通过参数配置的方式快速创建一个插件,然后集成到应用中使用。这里在创建插件的基本信息窗口中,使用在Coze IDE中直接编程,然后IDE的develop runtime改为Python3。

然后为插件创建Tool工具,并将以上已经写好的数据采集脚本放到Tool的核心代码区中并点击发布,从而构建插件的核心功能,插件通过合理使用Ownips的ISP代理,可以更加实时高效和安全地采集Twitter社交媒体数据,为市场分析、学术研究、品牌监测等提供强有力的支持。

3.2.2、创建Twitter Bot智能体

创建好插件后,接下来创建Twitter Bot智能体,回到coze主页,点击Create bot创建智能体,然后选择在Personal工作区,使用AI生成图标,然后点击Confirm确认创建。

进入Bot操作界面后,首先在左侧为Twitter Bot智能体书写提示词,然后将刚刚创建好的插件配置上去,也可以添加一些工作流、图像流、触发器、开场白、Markdown 编辑器、用户问题建议、快捷指令等扩展功能。

以下是可以参考的提示词:

# 角色
你是一位社交媒体智能助手,擅长分析Twitter等社交媒体平台的趋势、热点和关键词,帮助用户洞悉社交媒体上的流行动态,并做出相应反应。
## 技能
### 技能1:社交媒体分析
- 连接到Twitter等社交媒体平台的API,实时监测社交平台的主要趋势。
### 技能2:数据分析
- 对采集的数据进行分析以识别热点和关键词。
### 技能3:模式识别
- 识别并追踪在推特上的热门话题和流行模式。
### 技能4:趋势预测
- 根据数据分析模型,预测未来可能出现的热点和趋势。
## 条件
- 在进行社交媒体分析的过程中,全程遵守社交媒体平台的使用条款和法律规定,保护用户隐私权。 
- 提供用户界面,方便用户访问和操作。
- 用户可以自定义通知,当相关趋势出现时推送通知。
================
你的目标是为用户节省时间,并提供效率高的信息流。适用于品牌营销、新闻媒体、市场研究等领域。你可以在启动智能助手之前,设置和配置连接到社交媒体平台的API,输入初始化数据,设定分析参数和关键词列表。并随后开启实时监测模式,获取首份趋势数据分析报告。

3.2.3、Twitter 趋势分析效果

创建好成功后,就可以开始使用了,这里可以针对Twitter采集的数据进行分析以识别热点和关键词,无论是市场趋势的预测,还是用户行为的洞察,coze都能为用户提供精准、及时的分析报告,效果如下。

借助Ownips的强大功能,用户们得以轻松访问并获取来自全球各地的全面且真实的数据;而coze的智能分析功能则能够帮助用户从这些数据中提炼出有价值的信息。Ownips与Coze智能分析功能的组合,为用户们提供了一个强大且全面的数据分析工具。无论是市场研究、舆情监测还是商业决策,这一组合都能够为用户提供准确、及时的数据支持,帮助他们更好地把握机遇,实现更大的价值。



相关文章
|
1月前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
83 5
|
3月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
58 1
|
2月前
|
数据采集 数据可视化 数据挖掘
基于Python的数据分析与可视化实战
本文将引导读者通过Python进行数据分析和可视化,从基础的数据操作到高级的数据可视化技巧。我们将使用Pandas库处理数据,并利用Matplotlib和Seaborn库创建直观的图表。文章不仅提供代码示例,还将解释每个步骤的重要性和目的,帮助读者理解背后的逻辑。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和技能。
204 0
|
2月前
|
SQL 数据采集 数据可视化
深入 Python 数据分析:高级技术与实战应用
本文系统地介绍了Python在高级数据分析中的应用,涵盖数据读取、预处理、探索及可视化等关键环节,并详细展示了聚类分析、PCA、时间序列分析等高级技术。通过实际案例,帮助读者掌握解决复杂问题的方法,提升数据分析技能。使用pandas、matplotlib、seaborn及sklearn等库,提供了丰富的代码示例,便于实践操作。
170 64
|
1月前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南
|
1月前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
3月前
|
数据挖掘 Python
Pandas实战(1):电商购物用户行为数据分析
Pandas实战(1):电商购物用户行为数据分析
119 1
|
3月前
|
数据挖掘 Python
Pandas实战(3):电商购物用户行为数据分析
Pandas实战(3):电商购物用户行为数据分析
132 1
|
3月前
|
数据挖掘 Python
Pandas实战(2):电商购物用户行为数据分析
Pandas实战(2):电商购物用户行为数据分析
75 1