目錄
- 一、引言
- 二、ISP代理簡介
- 三、應用實踐——基于Ownips和coze的社媒智能分析助手
- 3.1、Twitter趨勢數據采集
- 3.1.1、Twitter趨勢數據接口分析
- 3.1.2、Ownips原生住宅ISP選取與配置
- 3.1.3、數據采集
- 3.2、基于Ownips和Coze的社媒智能助手
- 3.2.1、Ownips數據采集插件集成
- 3.2.2、創建Twitter Bot智能體
- 3.2.3、Twitter 趨勢分析效果
- 四、最后
一、引言
在當今數字化浪潮中,社交媒體已深深融入人們的日常生活,并為企業、研究機構及個體研究者提供了寶貴的數據資源。從Twitter、Facebook、Instagram、LinkedIn等多元化平臺高效采集數據,并進行深入分析,我們能夠洞察用戶行為、市場動向、公眾情感等關鍵信息。這些信息對于市場分析、社會研究、品牌監控及其他各種分析工作至關重要。
本文旨在通過案例,探討在社交媒體數據采集與分析的實戰方法,為研究和工作提供堅實的數據支撐。
二、ISP代理簡介
在采集社交媒體數據之前,我們首先要解決一個核心問題:社交媒體平臺對IP的屬性做判斷,導致無法高效采集數據。一方面,社交媒體平臺在推送時會確保所推送的內容與當地的文化和用戶偏好相符合,另一方面,社交媒體平臺會檢測和阻止異常流量,一旦單次訪問次數過多,便可能觸發強制驗證。
這時,ISP代理的引入就顯得尤為重要。ISP代理首先能夠模擬地區,有效保護在線隱私,減少被追蹤和識別。其次,它能夠確保用戶順暢地訪問所需內容,提升數據獲取的效率和便捷性。此外,ISP代理還提供了額外的安全層,能夠過濾釣魚網站和陷阱類的內容,有效防止惡意攻擊和數據泄露的風險。在企業環境中,其還能夠顯著加快網頁訪問速度,降低帶寬使用,同時通過負載均衡技術提升網絡性能和穩定性。
Ownips就是這樣一家專注于提供高質量靜態IP代理服務的公司,其為全球用戶提供獨享原生靜態ISP,具有高穩定性、高安全性,資源覆蓋全球100+國家地區,可謂是全力滿足伙伴們在跨境電商、社交營銷等場景中的需求。
值得一提的是,Ownips專做高質量靜態代理,根據業務場景選擇不同等級的靜態IP,使用更加靈活。Ownips通過提供純凈、穩定的靜態IP資源,并結合其靈活的配置選項和專業的技術支持,為用戶提供了代理體驗,滿足了不同業務場景下的需求。
三、應用實踐——基于Ownips和coze的社媒智能分析助手
3.1、Twitter趨勢數據采集
3.1.1、Twitter趨勢數據接口分析
打開推特網頁我們可以發現,整個趨勢榜是一個div盒子。
每一個項目都是一個子div,包含在主div下。而文字部分包含在其中的一個span下。于是可以得到結構如下:
其中,<div class="css-1750izr" aria-label="時間線:探索">
這個
<div class="css-1750izr"> ... <span>
趨勢內容 </span> ... </div>
的結構組成。例如, <span>Celtics</span>
表示一個趨勢項,內容為“Celtics”。依據結構可以寫出xpath如下: python //div[@aria-label="時間線:探索"]/div/div//div/div/div/div/div[2]/span
測試一下,可以發現確實選出了所有的項目,后期只要提取其中的文字即可。
3.1.2、Ownips原生住宅ISP選取與配置
訪問Ownips 網站,打開住宅ISP代理頁面,選擇原生住宅ISP,即可開始添加需要地區的IP,選好以后點擊購買即可。
下單完成后即可在個人中心看到之前選購的IP的狀態,也可以進行管理和續費。
點擊獲取代理,即可使用剛才購買的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 timeheaders = {"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 timeheaders = {"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 rdef 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 替換后,還可以采集以下數據:
- 查詢tweet詳細數據:https://twitter.com/i/api/graphql/4tzuTRu5-fpJTS7bDF6Nlg/TweetDetail?variables=
- 查詢用戶screenName:https://twitter.com/i/api/graphql/cYsDlVss-qimNYmNlb6inw/UserByScreenName?variables=
- 查詢用戶關注者:https://twitter.com/i/api/graphql/5jYTqZAy8gQiTPcAuNNXPg/Following?variables=
- 查詢用戶追隨者:https://twitter.com/i/api/graph
3.2、基于Ownips和Coze的社媒智能助手
3.2.1、Ownips數據采集插件集成
設計好數據采集流程后,我們可以登錄https://www.coze.com/home,進入coze官網,創建插件:
插件就是一個支持調用的服務端接口,可以將自己的 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 IP代理的強大功能,用戶們得以輕松訪問并獲取來自全球各地的全面且真實的數據;而coze的智能分析功能則能夠幫助用戶從這些數據中提煉出有價值的信息。Ownips與Coze智能分析功能的組合,為用戶們提供了一個強大且全面的數據分析工具。無論是市場研究、輿情監測還是商業決策,這一組合都能夠為用戶提供準確、及時的數據支持,幫助他們更好地把握機遇,實現更大的價值。
四、最后
經過實踐,可以發現,Ownips 靜態ISP代理具備模擬不同地區用戶的能力,這一功能對于跨地區趨勢分析尤為實用。借助此功能,可以對比不同地區的Twitter趨勢和熱點話題,進而深入了解各地用戶的興趣偏好和社交習慣。這不僅為用戶提供了訪問Twitter內容的便捷途徑,更重要的是,它協助用戶更深刻地洞察Twitter上的社交動態,從而發現潛在的商業機遇或社會熱點。