Gerekli Kütüphaneler:
Projeyi çalıştırabilmek için öncelikle aşağıdaki Python kütüphanelerini yüklemeniz gerekiyor:
- requests - HTTP istekleri yapmanızı sağlar.
- BeautifulSoup4 - HTML sayfasını parse etmek ve içindeki öğelere erişmek için kullanılır.
- json - JSON verisini parse etmek ve düzenli bir şekilde kullanabilmek için dahili Python kütüphanesidir.
pip install requests pip install beautifulsoup4
Kodun İşlevi:
Bu Python kodu, TikTok üzerindeki belirli bir kullanıcının profil bilgilerini çekmek için tasarlanmıştır. Aşağıdaki adımları takip ederek bu işlemi gerçekleştirebilirsiniz:
- TikTok Profil URL'si: Kodu kullanarak herhangi bir TikTok kullanıcısının profil URL'sini sorgulayabilirsiniz. Örneğin:
url = 'https://www.tiktok.com/@google'
- GET İsteği: Python requests kütüphanesini kullanarak TikTok sayfasının içeriğini çekeriz.
- HTML Parse İşlemi: BeautifulSoup kütüphanesiyle TikTok sayfasındaki HTML içeriği parse edilir ve gerekli bilgiler aranır.
- JSON Verisinin Çekilmesi: TikTok sayfasında yer alan belirli bir script etiketi içerisindeki JSON verisi parse edilerek kullanıcının profil bilgileri elde edilir.
- Çıktı: Kullanıcı adı, ID, profil resmi, takipçi sayısı gibi bilgileri terminale yazdırır.
Örnek Kullanım:
Kodu çalıştırdığınızda, örneğin TikTok'ta @google kullanıcısının aşağıdaki bilgilerini elde edebilirsiniz:- Kullanıcı Adı
- ID
- Profil Resmi
- Takipçi Sayısı
- Ayrıca, TikTok profilinden çekebileceğiniz başka bilgileri de (video sayısı, beğeni sayısı vb.) kod üzerinde ufak değişiklikler yaparak kullanabilirsiniz.
Dikkat Edilmesi Gerekenler:
- TikTok platformu zaman zaman HTML yapısını değiştirebilir, bu nedenle kod çalışmadığında sayfa yapısını kontrol edin.
- Ayrıca, sürekli olarak büyük miktarda veri çekmek TikTok tarafından engellenmenize sebep olabilir. Bu yüzden dikkatli kullanmanızı tavsiye ederim.
import requests
from bs4 import BeautifulSoup
import json
# TikTok sayfasının URL'si
url = 'https://www.tiktok.com/@google'
# Sayfa içeriğini almak için bir GET isteği gönderiyoruz
response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
# Sayfanın HTML içeriğini bir BeautifulSoup nesnesine dönüştürüyoruz
soup = BeautifulSoup(response.text, 'html.parser')
# '__UNIVERSAL_DATA_FOR_REHYDRATION__' id'sine sahip script etiketini buluyoruz
script_tag = soup.find('script', id='__UNIVERSAL_DATA_FOR_REHYDRATION__')
# Eğer script etiketi bulunduysa, içeriğini alıyoruz ve JSON olarak parse ediyoruz
if script_tag:
json_data = json.loads(script_tag.string)
veri = json.dumps(json_data, indent=4) # JSON verisini düzenli bir şekilde yazdırıyoruz
# JSON verisinden kullanıcı adını çekiyoruz
kullanici_adi = json_data["__DEFAULT_SCOPE__"]["webapp.user-detail"]["userInfo"]["user"]["uniqueId"]
id = json_data["__DEFAULT_SCOPE__"]["webapp.user-detail"]["userInfo"]["user"]["id"]
pr = json_data["__DEFAULT_SCOPE__"]["webapp.user-detail"]["userInfo"]["user"]["avatarLarger"]
takipci = json_data["__DEFAULT_SCOPE__"]["webapp.user-detail"]["userInfo"]["stats"]["followerCount"]
print(f"Kullanıcı Adı: {kullanici_adi}\nid: {id}\nProfil resmi: {pr}\ntakipçi sayısı: {takipci} ")
else:
print("Script etiketi bulunamadı.")
# kullanabileceğin diğer veriler.. aşğıdal istelenmiştir.
""" "webapp.user-detail": {
"userInfo": {
"user": {
"id": "109398199705976832",
"shortId": "",
"uniqueId": "kullaniciadi",
"nickname": "kullaniciadi",
"avatarLarger": "https:\u002F\u002Fp16-sign-va.tiktokcdn.com\u002Fmusically-maliva-obj\u002F1594805258216454~c5_1080x1080.jpeg?lk3s=a5d48078&nonce=58222&refresh_token=3d54e870d30d727274db448eb371c048&x-expires=1726786800&x-signature=7VzR23Z6cPdxHRsUQGL6b%2FonD4M%3D&shp=a5d48078&shcp=81f88b70",
"avatarMedium": "https:\u002F\u002Fp16-sign-va.tiktokcdn.com\u002Fmusically-maliva-obj\u002F1594805258216454~c5_720x720.jpeg?lk3s=a5d48078&nonce=14243&refresh_token=e3c424a846b94828ab4fb643f5c55f96&x-expires=1726786800&x-signature=mWvo9Io4RsBStDiq5jvfme23070%3D&shp=a5d48078&shcp=81f88b70",
"avatarThumb": "https:\u002F\u002Fp16-sign-va.tiktokcdn.com\u002Fmusically-maliva-obj\u002F1594805258216454~c5_100x100.jpeg?lk3s=a5d48078&nonce=35386&refresh_token=79727c7c1b77281f40e47e62b6a7c65c&x-expires=1726786800&x-signature=AagcKQpIkpmzmI1x0WVVxRb9sy0%3D&shp=a5d48078&shcp=81f88b70",
"signature": "",
"createTime": 1466454078,
"verified": false,
"secUid": "MS4wLjABAAAAnx_pNIQWz3paJN9QIn7vPMJdf5DXdjwudqfHBKvFZ5hQPYAGJNsgl6c-iFxDxn74",
"ftc": false,
"relation": 0,
"openFavorite": false,
"commentSetting": 0,
"commerceUserInfo": {
"commerceUser": false
},
"duetSetting": 0,
"stitchSetting": 0,
"privateAccount": false,
"secret": false,
"isADVirtual": false,
"roomId": "",
"uniqueIdModifyTime": 0,
"ttSeller": false,
"region": "TR",
"downloadSetting": 0,
"profileTab": {
"showMusicTab": false,
"showQuestionTab": false,
"showPlayListTab": false
},
"followingVisibility": 1,
"recommendReason": "",
"nowInvitationCardUrl": "",
"nickNameModifyTime": 0,
"isEmbedBanned": false,
"canExpPlaylist": true,
"profileEmbedPermission": 3,
"language": "fr",
"eventList": [
],
"suggestAccountBind": false,
"isOrganization": 0
},
"stats": {
"followerCount": 1447,
"followingCount": 0,
"heart": 0,
"heartCount": 0,
"videoCount": 0,
"diggCount": 0,
"friendCount": 0
},
"itemList": [
]
},
"shareMeta": {
"title": "kullaniciadi TikTok'ta",
"desc": "@kullaniciadi 1447 Takipçi, 0 Takip Ediliyor, 0 Beğeni - kullaniciadi tarafından oluşturulan harika kısa videoları izleyin"
},
"statusCode": 0,
"statusMsg": "ok",
"needFix": true
},
"""