social-agent-cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +226 -0
- package/bin/postinstall.js +19 -0
- package/bin/social-agent.js +109 -0
- package/config.example.json +20 -0
- package/hooks/post-push +69 -0
- package/knowledge/bluesky.md +1083 -0
- package/knowledge/facebook.md +603 -0
- package/knowledge/instagram.md +686 -0
- package/knowledge/linkedin.md +1013 -0
- package/knowledge/mastodon.md +1291 -0
- package/knowledge/telegram.md +824 -0
- package/knowledge/x.md +1532 -0
- package/package.json +30 -0
|
@@ -0,0 +1,686 @@
|
|
|
1
|
+
# Instagram Platform Bilgisi
|
|
2
|
+
|
|
3
|
+
> Instagram, bot tespiti konusunda en agresif sosyal medya platformudur.
|
|
4
|
+
> Her otomasyon adiminda ekstra dikkatli olunmalidir.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. URL Yapisi
|
|
9
|
+
|
|
10
|
+
| Sayfa | URL | Aciklama |
|
|
11
|
+
|-------|-----|----------|
|
|
12
|
+
| Ana Sayfa (Feed) | `https://www.instagram.com/` | Ana akis |
|
|
13
|
+
| Profil | `https://www.instagram.com/{USERNAME}/` | Kullanici profil sayfasi |
|
|
14
|
+
| Profil (Reels) | `https://www.instagram.com/{USERNAME}/reels/` | Kullanicinin reels'leri |
|
|
15
|
+
| Profil (Tagged) | `https://www.instagram.com/{USERNAME}/tagged/` | Etiketlenen gonderiler |
|
|
16
|
+
| Profil (Saved) | `https://www.instagram.com/{USERNAME}/saved/` | Kaydedilen gonderiler (sadece kendi hesabin) |
|
|
17
|
+
| Kesfet | `https://www.instagram.com/explore/` | Kesfet sayfasi |
|
|
18
|
+
| Kesfet (Etiketler) | `https://www.instagram.com/explore/tags/{HASHTAG}/` | Hashtag arama |
|
|
19
|
+
| Reels | `https://www.instagram.com/reels/` | Reels akisi |
|
|
20
|
+
| Hikayeler | `https://www.instagram.com/stories/{USERNAME}/` | Kullanicinin hikayeleri |
|
|
21
|
+
| Hikaye (Tekil) | `https://www.instagram.com/stories/{USERNAME}/{STORY_ID}/` | Belirli bir hikaye |
|
|
22
|
+
| DM (Direkt Mesaj) | `https://www.instagram.com/direct/inbox/` | Mesaj kutusu |
|
|
23
|
+
| DM (Konusma) | `https://www.instagram.com/direct/t/{THREAD_ID}/` | Belirli bir konusma |
|
|
24
|
+
| Post (Gonderi) | `https://www.instagram.com/p/{SHORTCODE}/` | Tekil gonderi (foto/carousel) |
|
|
25
|
+
| Reel (Tekil) | `https://www.instagram.com/reel/{SHORTCODE}/` | Tekil reel |
|
|
26
|
+
| IGTV | `https://www.instagram.com/tv/{SHORTCODE}/` | IGTV videosu (artik fazla kullanilmiyor) |
|
|
27
|
+
| Ayarlar | `https://www.instagram.com/accounts/edit/` | Profil duzenleme |
|
|
28
|
+
| Sifre Degistirme | `https://www.instagram.com/accounts/password/change/` | Sifre ayarlari |
|
|
29
|
+
| Gizlilik | `https://www.instagram.com/accounts/privacy_and_security/` | Gizlilik ayarlari |
|
|
30
|
+
| Aktivite | `https://www.instagram.com/accounts/activity/` | Hesap aktivitesi |
|
|
31
|
+
| Giris | `https://www.instagram.com/accounts/login/` | Giris sayfasi |
|
|
32
|
+
| Bildirimler | `https://www.instagram.com/accounts/activity/` | Bildirim sayfasi (web'de sinirli) |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 2. Bilinen Selectorler
|
|
37
|
+
|
|
38
|
+
> ONEMLI: Instagram React tabanlidir ve class name'ler dinamik/obfuscated olarak uretilir.
|
|
39
|
+
> Bu yuzden class-based selectorler GUVENILMEZ. data-testid, aria-label, role ve yapisal selectorler tercih edilmelidir.
|
|
40
|
+
> Instagram selectorlderi siklikla degisir, asagidakiler referans noktasidir.
|
|
41
|
+
|
|
42
|
+
### 2.1 Navigasyon
|
|
43
|
+
|
|
44
|
+
| Eleman | Selectorler | Notlar |
|
|
45
|
+
|--------|-------------|-------|
|
|
46
|
+
| Ana Sayfa | `a[href='/']`, `svg[aria-label='Home']`, `svg[aria-label='Ana Sayfa']` | Dile gore degisir |
|
|
47
|
+
| Arama | `a[href='/explore/']`, `svg[aria-label='Search']`, `svg[aria-label='Ara']` | Arama ikonu |
|
|
48
|
+
| Kesfet | `a[href='/explore/']` | Bazi durumlarda Arama ile ayni |
|
|
49
|
+
| Reels | `a[href='/reels/']`, `svg[aria-label='Reels']` | |
|
|
50
|
+
| Mesajlar | `a[href='/direct/inbox/']`, `svg[aria-label='Messenger']` | |
|
|
51
|
+
| Bildirimler | `svg[aria-label='Notifications']`, `svg[aria-label='Bildirimler']` | Kalp ikonu |
|
|
52
|
+
| Yeni Gonderi | `svg[aria-label='New post']`, `svg[aria-label='Yeni gonderi']` | "+" ikonu |
|
|
53
|
+
| Profil | `a[href='/{USERNAME}/']` , `img[alt*='profil']` | Kullanici avatari |
|
|
54
|
+
| Daha Fazla | `svg[aria-label='Settings']`, `[aria-label='Ayarlar']` | Hamburger menu (sol alt) |
|
|
55
|
+
|
|
56
|
+
### 2.2 Gonderi Olusturma (Create Post)
|
|
57
|
+
|
|
58
|
+
Instagram'da gonderi olusturma cok adimli bir modal akisidir:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
Adim 1: Olusturma butonuna tikla
|
|
62
|
+
- svg[aria-label='New post'] veya svg[aria-label='Yeni gonderi']
|
|
63
|
+
- Sidebar'daki "+" ikonu
|
|
64
|
+
|
|
65
|
+
Adim 2: Dosya yukle modal'i acilir
|
|
66
|
+
- "Bilgisayarindan sec" / "Select from computer" butonu
|
|
67
|
+
- button: icerisinde "Bilgisayarindan sec" veya "Select from computer" metni
|
|
68
|
+
- input[type='file'][accept*='image'] (gizli file input)
|
|
69
|
+
- NOT: File input'a dogrudan dosya path'i set edilebilir (Playwright setInputFiles)
|
|
70
|
+
|
|
71
|
+
Adim 3: Kirpma/Duzenleme ekrani
|
|
72
|
+
- "Ileri" / "Next" butonu: button icerisinde "Ileri" veya "Next"
|
|
73
|
+
- Aspect ratio butonlari: Orijinal, 1:1, 4:5, 16:9
|
|
74
|
+
- Carousel'e ek foto ekleme: Sag alttaki "+" ikonu
|
|
75
|
+
|
|
76
|
+
Adim 4: Filtre/Duzenleme ekrani
|
|
77
|
+
- "Ileri" / "Next" butonu: button icerisinde "Ileri" veya "Next"
|
|
78
|
+
- Filtre secenekleri: Normal, Clarendon, Gingham vb.
|
|
79
|
+
|
|
80
|
+
Adim 5: Bilgi ekleme ekrani
|
|
81
|
+
- Aciklama (Caption) alani: textarea[aria-label='Write a caption...'] veya textarea[aria-label*='aciklama']
|
|
82
|
+
- Konum ekleme: "Konum ekle" / "Add location" input'u
|
|
83
|
+
- Kisi etiketleme: "Kisileri etiketle" / "Tag people"
|
|
84
|
+
- Alt metin: "Erisilebilirlik" / "Accessibility" bolumu
|
|
85
|
+
- "Paylas" / "Share" butonu: button icerisinde "Paylas" veya "Share"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 2.3 Hikaye (Story) Olusturma
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
Adim 1: Profil resminin yanindaki "+" isaretine tikla
|
|
92
|
+
- Veya: Sol ustteki "Hikayen" / "Your story" linkine tikla
|
|
93
|
+
- a[href='/stories/creation/'] (bazi versiyonlarda)
|
|
94
|
+
|
|
95
|
+
Adim 2: Dosya yukle
|
|
96
|
+
- input[type='file'] ile dosya yuklenir
|
|
97
|
+
- Veya "Galerinden sec" butonu
|
|
98
|
+
|
|
99
|
+
Adim 3: Duzenleme ekrani
|
|
100
|
+
- Metin ekleme, sticker, cizim araclari
|
|
101
|
+
- "Hikayene paylas" / "Share to your story" butonu
|
|
102
|
+
|
|
103
|
+
Adim 4: Paylasim
|
|
104
|
+
- "Paylas" / "Share" butonu
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 2.4 Feed Etkilesimleri
|
|
108
|
+
|
|
109
|
+
| Eleman | Selector | Notlar |
|
|
110
|
+
|--------|----------|-------|
|
|
111
|
+
| Begeni (Like) | `svg[aria-label='Like']`, `svg[aria-label='Begen']`, `span[class] > div > svg[aria-label*='ike']` | Kalp ikonu, dolu ise zaten begenilmis |
|
|
112
|
+
| Begeniyi Kaldir (Unlike) | `svg[aria-label='Unlike']`, `svg[aria-label='Begeniyi kaldir']` | Dolu kirmizi kalp |
|
|
113
|
+
| Yorum | `svg[aria-label='Comment']`, `svg[aria-label='Yorum']` | Balon ikonu |
|
|
114
|
+
| Yorum Yazma Alani | `textarea[aria-label='Add a comment…']`, `textarea[placeholder*='yorum']`, `form textarea` | Post altindaki textarea |
|
|
115
|
+
| Yorum Gonder | `button[type='submit']` (form icindeki), `div[role='button']` icerisinde "Paylas/Post" | |
|
|
116
|
+
| Paylasma (Share/Send) | `svg[aria-label='Share Post']`, `svg[aria-label='Gonderiyi paylas']` | Ucak ikonu |
|
|
117
|
+
| Kaydetme (Save/Bookmark) | `svg[aria-label='Save']`, `svg[aria-label='Kaydet']` | Yer imi ikonu |
|
|
118
|
+
| Kaydedilmis (Saved) | `svg[aria-label='Remove']`, `svg[aria-label='Kaldir']` | Dolu yer imi |
|
|
119
|
+
| Uc Nokta Menusu | `svg[aria-label='More options']`, `svg[aria-label='Diger secenekler']` | "..." ikonu |
|
|
120
|
+
| Carousel Ileri | `button[aria-label='Next']`, `button[aria-label='Sonraki']` | Saga kaydir |
|
|
121
|
+
| Carousel Geri | `button[aria-label='Go back']`, `button[aria-label='Geri don']` | Sola kaydir |
|
|
122
|
+
|
|
123
|
+
### 2.5 Profil Sayfasi
|
|
124
|
+
|
|
125
|
+
| Eleman | Selector | Notlar |
|
|
126
|
+
|--------|----------|-------|
|
|
127
|
+
| Takip Et | `button:has-text('Follow')`, `button:has-text('Takip Et')` | |
|
|
128
|
+
| Takip Ediliyor | `button:has-text('Following')`, `button:has-text('Takip Ediliyor')` | Takibi birak icin tiklanir |
|
|
129
|
+
| Takibi Birak (onay) | `button:has-text('Unfollow')`, `button:has-text('Takibi birak')` | Modal'da onay butonu |
|
|
130
|
+
| Mesaj Gonder | `button:has-text('Message')`, `button:has-text('Mesaj')` | DM'e yonlendirir |
|
|
131
|
+
| Gonderi Sayisi | `a[href='/{USERNAME}/'] span` veya `li:first-child span` | |
|
|
132
|
+
| Takipci Sayisi | `a[href='/{USERNAME}/followers/'] span` | |
|
|
133
|
+
| Takip Sayisi | `a[href='/{USERNAME}/following/'] span` | |
|
|
134
|
+
| Post Grid | `article a[href*='/p/']` | Post'lara link |
|
|
135
|
+
| Bio | `div.-vDIg span`, `header section > div` | Yapisal olarak bulunmali |
|
|
136
|
+
| Profil Resmi | `header img[alt*='profil']`, `img[data-testid='user-avatar']` | |
|
|
137
|
+
|
|
138
|
+
### 2.6 Hikaye Izleme
|
|
139
|
+
|
|
140
|
+
| Eleman | Selector | Notlar |
|
|
141
|
+
|--------|----------|-------|
|
|
142
|
+
| Hikaye Halkasi | `canvas` (profilin etrafindaki renkli halka), `div[role='button'] img` | Feed'in ustunde |
|
|
143
|
+
| Sonraki Hikaye | Ekranin sag tarafina tikla veya `button[aria-label='Next']` | |
|
|
144
|
+
| Onceki Hikaye | Ekranin sol tarafina tikla veya `button[aria-label='Go Back']` | |
|
|
145
|
+
| Hikaye Kapat | `button[aria-label='Close']`, `svg[aria-label='Close']` | Sag ust "X" |
|
|
146
|
+
| Hikayeye Yanit | `textarea[placeholder*='reply']`, `textarea[placeholder*='Yanit']` | Alt kisim |
|
|
147
|
+
| Begeni (Hikaye) | Kalp ikonu (sag alt) | |
|
|
148
|
+
| Ilerleme Cubugu | Ekranin ust kismindaki cizgi | Her hikaye icin segment |
|
|
149
|
+
|
|
150
|
+
### 2.7 Reel Etkilesimleri
|
|
151
|
+
|
|
152
|
+
| Eleman | Selector | Notlar |
|
|
153
|
+
|--------|----------|-------|
|
|
154
|
+
| Begeni | `svg[aria-label='Like']` | Sag taraftaki kalp |
|
|
155
|
+
| Yorum | `svg[aria-label='Comment']` | Sag taraftaki balon |
|
|
156
|
+
| Paylas | `svg[aria-label='Share']` veya `svg[aria-label='Direct']` | Ucak ikonu |
|
|
157
|
+
| Kaydet | `svg[aria-label='Save']` | Yer imi ikonu |
|
|
158
|
+
| Uc Nokta | `svg[aria-label='More']` | Diger secenekler |
|
|
159
|
+
| Ses Ac/Kapat | Video uzerine tikla veya ses ikonu | |
|
|
160
|
+
| Sonraki Reel | Asagi kaydir (scroll down) | |
|
|
161
|
+
| Onceki Reel | Yukari kaydir (scroll up) | |
|
|
162
|
+
|
|
163
|
+
### 2.8 Modal / Dialog
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
Genel modal container:
|
|
167
|
+
- div[role='dialog']
|
|
168
|
+
- div[role='presentation'] (overlay/backdrop)
|
|
169
|
+
|
|
170
|
+
Modal kapatma:
|
|
171
|
+
- svg[aria-label='Close'] veya button[aria-label='Close']
|
|
172
|
+
- Escape tusu
|
|
173
|
+
|
|
174
|
+
Onay dialoglari:
|
|
175
|
+
- div[role='dialog'] button (genelde son button "Onayla"dir)
|
|
176
|
+
- "Discard" / "Vazgec", "Cancel" / "Iptal" butonlari
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### 2.9 Giris (Login) Sayfasi
|
|
180
|
+
|
|
181
|
+
| Eleman | Selector | Notlar |
|
|
182
|
+
|--------|----------|-------|
|
|
183
|
+
| Kullanici Adi | `input[name='username']` | |
|
|
184
|
+
| Sifre | `input[name='password']` | |
|
|
185
|
+
| Giris Butonu | `button[type='submit']`, `button:has-text('Log in')` | |
|
|
186
|
+
| Facebook ile Giris | `button:has-text('Log in with Facebook')` | |
|
|
187
|
+
| "Bilgileri Kaydet" | `button:has-text('Save Info')`, `button:has-text('Bilgilerini Kaydet')` | Giris sonrasi modal |
|
|
188
|
+
| "Simdi Degil" | `button:has-text('Not Now')`, `button:has-text('Simdi Degil')` | Bildirim izni vb. |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 3. Tum Etkilesimler (Interactions)
|
|
193
|
+
|
|
194
|
+
### 3.1 Gonderi Paylasma
|
|
195
|
+
|
|
196
|
+
| Tur | Desteklenen Formatlar | Notlar |
|
|
197
|
+
|-----|----------------------|-------|
|
|
198
|
+
| Foto Gonderi | JPG, PNG, BMP, HEIC | Tek fotograf |
|
|
199
|
+
| Video Gonderi | MP4, MOV | 3-60 saniye (feed), 3-90 saniye (reel) |
|
|
200
|
+
| Carousel | 2-10 adet foto/video | Karistirma (foto+video) mumkun |
|
|
201
|
+
| Reel | MP4, MOV | 9:16, max 90 saniye (web'de 60 sn siniri olabilir) |
|
|
202
|
+
| Hikaye (Story) | Foto veya Video | 24 saat sonra kaybolar, video max 60 saniye |
|
|
203
|
+
|
|
204
|
+
**Gonderi Paylasma Akisi (Web):**
|
|
205
|
+
1. "+" (Yeni Gonderi) butonuna tikla
|
|
206
|
+
2. Dosyalari yukle (input[type='file'] ile veya surukle-birak)
|
|
207
|
+
3. Kirpma ekraninda boyut ayarla (1:1, 4:5, 16:9)
|
|
208
|
+
4. Carousel ise ek medya ekle
|
|
209
|
+
5. "Ileri" (Next) tikla
|
|
210
|
+
6. Filtre/duzenleme ekrani -> "Ileri" (Next) tikla
|
|
211
|
+
7. Aciklama (caption) yaz, konum ekle, kisileri etiketle
|
|
212
|
+
8. "Paylas" (Share) tikla
|
|
213
|
+
9. Modal kapanana kadar bekle (basarili paylasim)
|
|
214
|
+
|
|
215
|
+
### 3.2 Begenme (Like)
|
|
216
|
+
|
|
217
|
+
- Feed'de: Kalp ikonuna tikla veya gonderi uzerine cift tikla
|
|
218
|
+
- Post sayfasinda: `svg[aria-label='Like']` tikla
|
|
219
|
+
- Reel'de: Sag taraftaki kalp ikonu
|
|
220
|
+
- Hikayede: Kalp ikonu veya mesaj gonder
|
|
221
|
+
|
|
222
|
+
### 3.3 Yorum Yapma (Comment)
|
|
223
|
+
|
|
224
|
+
1. Yorum ikonuna tikla (balonvari ikon) -> post sayfasi acilir
|
|
225
|
+
2. Veya dogrudan post altindaki textarea'ya tikla
|
|
226
|
+
3. Yorum metnini yaz
|
|
227
|
+
4. "Paylas" / "Post" butonuna tikla veya Enter'a bas
|
|
228
|
+
|
|
229
|
+
### 3.4 Takip Etme / Birakma (Follow/Unfollow)
|
|
230
|
+
|
|
231
|
+
**Takip:**
|
|
232
|
+
1. Profil sayfasina git
|
|
233
|
+
2. "Takip Et" / "Follow" butonuna tikla
|
|
234
|
+
|
|
235
|
+
**Takibi Birak:**
|
|
236
|
+
1. Profil sayfasina git
|
|
237
|
+
2. "Takip Ediliyor" / "Following" butonuna tikla
|
|
238
|
+
3. Acilan modal'da "Takibi Birak" / "Unfollow" onay butonuna tikla
|
|
239
|
+
|
|
240
|
+
### 3.5 Kaydetme (Save/Bookmark)
|
|
241
|
+
|
|
242
|
+
- Post altindaki yer imi (bookmark) ikonuna tikla
|
|
243
|
+
- Koleksiyona ekleme secenegi cikar
|
|
244
|
+
|
|
245
|
+
### 3.6 DM ile Paylasma (Share via DM)
|
|
246
|
+
|
|
247
|
+
1. Ucak ikonuna tikla (Share/Send)
|
|
248
|
+
2. Alici kisisini ara ve sec
|
|
249
|
+
3. "Gonder" / "Send" butonuna tikla
|
|
250
|
+
|
|
251
|
+
### 3.7 Hikaye Izleme (Story Viewing)
|
|
252
|
+
|
|
253
|
+
1. Feed ustundeki hikaye halkasina tikla
|
|
254
|
+
2. Otomatik oynar, saga tiklayarak sonrakine gec
|
|
255
|
+
3. Kapatmak icin "X" veya Escape
|
|
256
|
+
|
|
257
|
+
### 3.8 Arama (Search)
|
|
258
|
+
|
|
259
|
+
1. Arama ikonuna tikla (buyutec)
|
|
260
|
+
2. Arama alanina metin yaz
|
|
261
|
+
3. Sonuclardan sec (Hesaplar, Etiketler, Konumlar)
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## 4. Gorsel ve Video Boyutlari
|
|
266
|
+
|
|
267
|
+
### 4.1 Feed Gonderileri
|
|
268
|
+
|
|
269
|
+
| Tur | Boyut (px) | Oran | Notlar |
|
|
270
|
+
|-----|-----------|------|-------|
|
|
271
|
+
| Kare | 1080 x 1080 | 1:1 | En yaygin format |
|
|
272
|
+
| Dikey (Portrait) | 1080 x 1350 | 4:5 | Feed'de en cok alan kaplayan, EN COK ONERILEN |
|
|
273
|
+
| Yatay (Landscape) | 1080 x 608 | 1.91:1 | Feed'de kucuk gorunur, onerilmez |
|
|
274
|
+
| Minimum genislik | 320 px | - | Altindakiler otomatik buyutulur |
|
|
275
|
+
| Maksimum genislik | 1080 px | - | Ustundekiler otomatik kucultulur |
|
|
276
|
+
|
|
277
|
+
### 4.2 Hikaye ve Reel
|
|
278
|
+
|
|
279
|
+
| Tur | Boyut (px) | Oran | Notlar |
|
|
280
|
+
|-----|-----------|------|-------|
|
|
281
|
+
| Hikaye | 1080 x 1920 | 9:16 | Tam ekran dikey |
|
|
282
|
+
| Reel | 1080 x 1920 | 9:16 | Tam ekran dikey |
|
|
283
|
+
| Minimum | 600 x 1067 | 9:16 | Daha dusuk kalite |
|
|
284
|
+
|
|
285
|
+
### 4.3 Profil Resmi
|
|
286
|
+
|
|
287
|
+
| Tur | Boyut (px) | Notlar |
|
|
288
|
+
|-----|-----------|-------|
|
|
289
|
+
| Profil Foto | 320 x 320 | Daire seklinde kirpilir |
|
|
290
|
+
| Onerilenis | 320 x 320 | Kare format zorunlu |
|
|
291
|
+
|
|
292
|
+
### 4.4 Carousel (Coklu Gonderi)
|
|
293
|
+
|
|
294
|
+
- Minimum: 2 medya
|
|
295
|
+
- Maksimum: 10 medya
|
|
296
|
+
- Tum medya ayni en-boy oraninda olmali (ilk medyanin orani baz alinir)
|
|
297
|
+
- Foto ve video karisik olabilir
|
|
298
|
+
- Her medya icin ayri alt metin eklenebilir
|
|
299
|
+
|
|
300
|
+
### 4.5 Video Ozellikleri
|
|
301
|
+
|
|
302
|
+
| Ozellik | Deger |
|
|
303
|
+
|---------|-------|
|
|
304
|
+
| Format | MP4, MOV (H.264 codec onerili) |
|
|
305
|
+
| Maks dosya boyutu | 650 MB (reel), 100 MB (hikaye) |
|
|
306
|
+
| Feed video suresi | 3 - 60 saniye |
|
|
307
|
+
| Reel suresi | 3 - 90 saniye |
|
|
308
|
+
| Hikaye video suresi | 1 - 60 saniye |
|
|
309
|
+
| Kare hizi (FPS) | 30 FPS onerili |
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## 5. Rate Limiting (Hiz Sinirlamalari)
|
|
314
|
+
|
|
315
|
+
> KRITIK: Instagram'in rate limit'leri kesin degerler degildir.
|
|
316
|
+
> Hesabin yasina, takipci sayisina ve gecmis davranisina gore degisir.
|
|
317
|
+
> Yeni hesaplar cok daha dusuk limitlere sahiptir.
|
|
318
|
+
|
|
319
|
+
### 5.1 Takip / Takipten Cikma (Follow/Unfollow)
|
|
320
|
+
|
|
321
|
+
| Metrik | Limit | Notlar |
|
|
322
|
+
|--------|-------|-------|
|
|
323
|
+
| Saatlik | ~20-60 | Yeni hesaplar icin ~10-20 |
|
|
324
|
+
| Gunluk | ~100-200 | Yeni hesaplar icin ~50-100 |
|
|
325
|
+
| Iki islem arasi bekleme | 30-90 saniye | MINIMUM, daha fazlasi guvenli |
|
|
326
|
+
| Yeni hesap ilk hafta | ~10-20/gun | Cok dusuk tutulmali |
|
|
327
|
+
|
|
328
|
+
### 5.2 Begeni (Like)
|
|
329
|
+
|
|
330
|
+
| Metrik | Limit | Notlar |
|
|
331
|
+
|--------|-------|-------|
|
|
332
|
+
| Saatlik | ~150-300 | Hesap yasina bagli |
|
|
333
|
+
| Gunluk | ~500-1000 | Guvenli sinir: ~300/gun |
|
|
334
|
+
| Iki begeni arasi | 10-30 saniye | Rastgele araliklar onemli |
|
|
335
|
+
|
|
336
|
+
### 5.3 Yorum (Comment)
|
|
337
|
+
|
|
338
|
+
| Metrik | Limit | Notlar |
|
|
339
|
+
|--------|-------|-------|
|
|
340
|
+
| Saatlik | ~10-20 | Cok katil |
|
|
341
|
+
| Gunluk | ~50-100 | Guvenli sinir: ~30/gun |
|
|
342
|
+
| Iki yorum arasi | 60-120 saniye | Kisa yorumlar suphe ceker |
|
|
343
|
+
| Ayni yorum tekrari | YASAK | Farkli yorumlar kullanilmali |
|
|
344
|
+
|
|
345
|
+
### 5.4 DM (Direkt Mesaj)
|
|
346
|
+
|
|
347
|
+
| Metrik | Limit | Notlar |
|
|
348
|
+
|--------|-------|-------|
|
|
349
|
+
| Saatlik | ~10-20 | Takip etmedigin kisilere daha az |
|
|
350
|
+
| Gunluk | ~50-80 | Spam tespiti cok hassas |
|
|
351
|
+
| Grup mesajlari | Daha dusuk limitler | |
|
|
352
|
+
|
|
353
|
+
### 5.5 Gonderi Paylasma
|
|
354
|
+
|
|
355
|
+
| Metrik | Limit | Notlar |
|
|
356
|
+
|--------|-------|-------|
|
|
357
|
+
| Gunluk gonderi | ~10-25 | Normal kullanim: 1-3 |
|
|
358
|
+
| Gunluk hikaye | ~50-100 | Normal kullanim: 5-10 |
|
|
359
|
+
| Gunluk reel | ~10-25 | Normal kullanim: 1-3 |
|
|
360
|
+
|
|
361
|
+
### 5.6 Hashtag Sinirlamalari
|
|
362
|
+
|
|
363
|
+
| Metrik | Limit |
|
|
364
|
+
|--------|-------|
|
|
365
|
+
| Gonderi basina hashtag | Maksimum 30 |
|
|
366
|
+
| Yorum basina hashtag | Maksimum 30 |
|
|
367
|
+
| Onerilen hashtag sayisi | 5-15 arasi (fazlasi spam gorunur) |
|
|
368
|
+
| Yasakli hashtag kullanimi | Shadowban riski! |
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## 6. Anti-Bot Tespit Mekanizmalari
|
|
373
|
+
|
|
374
|
+
> UYARI: Instagram, TUM sosyal medya platformlari arasinda EN AGRESIF bot tespit sistemine sahiptir.
|
|
375
|
+
> Hesap kalici olarak yasaklanabilir. Asagidaki onlemlere MUTLAKA uyulmalidir.
|
|
376
|
+
|
|
377
|
+
### 6.1 Tespit Yontemleri
|
|
378
|
+
|
|
379
|
+
Instagram su yontemlerle bot tespiti yapar:
|
|
380
|
+
|
|
381
|
+
1. **Davranis Analizi**: Cok hizli, cok duzgun (non-random) eylemler
|
|
382
|
+
2. **Parmak Izi (Fingerprinting)**: Tarayici fingerprint, canvas fingerprint, WebGL
|
|
383
|
+
3. **IP Analizi**: VPN/proxy/datacenter IP'leri suphe ceker
|
|
384
|
+
4. **Cihaz Tespiti**: Headless browser tespiti (navigator.webdriver vb.)
|
|
385
|
+
5. **Eylem Paternleri**: Ayni islemi surekli tekrar etme
|
|
386
|
+
6. **Zaman Paternleri**: 7/24 aktiflik, gece saatlerinde yogun aktivite
|
|
387
|
+
7. **Icerik Analizi**: Tekrar eden yorumlar, spam icerigi
|
|
388
|
+
8. **Cografi Tutarsizlik**: IP konumu ile hesap konumu uyumsuzlugu
|
|
389
|
+
9. **Mouse/Klavye Paternleri**: Insan-disi mouse hareketleri
|
|
390
|
+
10. **API Cagrilari**: Anormal GraphQL/REST istekleri
|
|
391
|
+
|
|
392
|
+
### 6.2 Ceza Turleri
|
|
393
|
+
|
|
394
|
+
| Ceza | Aciklama | Sure |
|
|
395
|
+
|------|----------|------|
|
|
396
|
+
| Gecici Eylem Engeli (Action Block) | Belirli eylemler engellenir (begeni, yorum, takip) | 24 saat - 2 hafta |
|
|
397
|
+
| Soft Ban | Akis sinirlanir, kesfet'te gorunmez | 1-4 hafta |
|
|
398
|
+
| Shadowban | Hashtaglerde gorunmezsiniz | 2-4 hafta |
|
|
399
|
+
| Gecici Hesap Askiya Alma | Hesaba giris engellenir | 24 saat - 1 hafta |
|
|
400
|
+
| Checkpoint Challenge | Dogrulama gerekir (SMS, e-posta) | Anlik |
|
|
401
|
+
| Kalici Ban | Hesap kalici olarak kapatilir | Surekli |
|
|
402
|
+
|
|
403
|
+
### 6.3 Action Block (Eylem Engeli) Belirtileri
|
|
404
|
+
|
|
405
|
+
Action block olusturuldiginda su mesajlar gorunur:
|
|
406
|
+
- "Try Again Later" / "Daha Sonra Tekrar Dene"
|
|
407
|
+
- "We restrict certain activity to protect our community"
|
|
408
|
+
- "Action Blocked" / "Eylem Engellendi"
|
|
409
|
+
- "Your account has been temporarily blocked"
|
|
410
|
+
|
|
411
|
+
**Action Block Goruldugunde:**
|
|
412
|
+
1. TUM otomasyonu HEMEN durdur
|
|
413
|
+
2. En az 24-48 saat hicbir otomasyon yapma
|
|
414
|
+
3. Bu sure icinde sadece normal (manuel) kullanim yap
|
|
415
|
+
4. Blok kalktiginda cok yavas baslat (normal limitin %25'i)
|
|
416
|
+
|
|
417
|
+
### 6.4 Guvenli Otomasyon Kurallari
|
|
418
|
+
|
|
419
|
+
#### Gecikmeler (Delays)
|
|
420
|
+
|
|
421
|
+
| Eylem | Minimum Gecikme | Onerilen Gecikme | Notlar |
|
|
422
|
+
|-------|----------------|-----------------|-------|
|
|
423
|
+
| Sayfalar arasi gezinme | 3 saniye | 5-10 saniye | Rastgele +/- 2 sn |
|
|
424
|
+
| Begeni islemi | 5 saniye | 10-30 saniye | Rastgele araliklar SART |
|
|
425
|
+
| Yorum yazma | 30 saniye | 60-120 saniye | Her yorum benzersiz olmali |
|
|
426
|
+
| Takip etme | 30 saniye | 60-120 saniye | Rastgele araliklar SART |
|
|
427
|
+
| Takipten cikma | 30 saniye | 60-120 saniye | Ayni gunde takip+unfollow YAPMA |
|
|
428
|
+
| DM gonderme | 30 saniye | 60-180 saniye | Ayni mesaji tekrarlama |
|
|
429
|
+
| Gonderi paylasma | 5 dakika | 15-30 dakika | Cok sik paylasma suphelidir |
|
|
430
|
+
| Hikaye izleme | 2 saniye | 3-5 saniye | Dogal izleme hizi |
|
|
431
|
+
| Scroll (kaydirma) | 1 saniye | 2-4 saniye | Insan-benzeri scroll onemli |
|
|
432
|
+
| Oturum baslangici | - | 30-60 saniye | Giris sonrasi bir sure bekle |
|
|
433
|
+
|
|
434
|
+
#### Rastgelelik (Randomization)
|
|
435
|
+
|
|
436
|
+
- Her gecikmeye +/- %30-50 rastgele sapma ekle
|
|
437
|
+
- Islem siralarini degistir (her zaman ayni sirada yapma)
|
|
438
|
+
- Bazi gonderleri es gec (her gonderiyi begenme)
|
|
439
|
+
- Oturumlar arasinda farkli sureler birak
|
|
440
|
+
- Mouse hareketlerinde dogal egrisellik kullan
|
|
441
|
+
- Typing hizini rastgele yap (50-150ms/karakter)
|
|
442
|
+
|
|
443
|
+
#### Gunluk Rutinler
|
|
444
|
+
|
|
445
|
+
- Guvenli gunluk toplam eylem sayisi: ~150-300 (tum eylemler dahil)
|
|
446
|
+
- Sabah/aksam yogunlugu degistir (insanlar sabah daha aktif)
|
|
447
|
+
- Hafta sonlari farkli patternler kullan
|
|
448
|
+
- Her 30-60 dakikada bir mola ver (5-15 dakika)
|
|
449
|
+
- Bir oturumu 1-2 saat ile sinirla
|
|
450
|
+
- Gunluk toplam otomasyon suresi: 2-4 saat (fazlasi tehlikeli)
|
|
451
|
+
|
|
452
|
+
#### Isim Surecleri (Warm-up)
|
|
453
|
+
|
|
454
|
+
Yeni bir hesap veya uzun suredir kullanilmayan hesap icin:
|
|
455
|
+
- **1. hafta**: Gunluk 5-10 begeni, 2-3 yorum, 1-2 takip
|
|
456
|
+
- **2. hafta**: Gunluk 15-25 begeni, 5-8 yorum, 5-10 takip
|
|
457
|
+
- **3. hafta**: Gunluk 30-50 begeni, 10-15 yorum, 15-25 takip
|
|
458
|
+
- **4. hafta**: Normal limitlere yaklasabilir
|
|
459
|
+
|
|
460
|
+
### 6.5 Headless Browser Tespitinden Kacinma
|
|
461
|
+
|
|
462
|
+
Instagram headless browser tespiti icin su kontrolleri yapar:
|
|
463
|
+
|
|
464
|
+
```
|
|
465
|
+
Kontrol edilen degerler:
|
|
466
|
+
- navigator.webdriver === true (headless flag)
|
|
467
|
+
- navigator.languages bos veya eksik
|
|
468
|
+
- navigator.plugins bos (normal tarayicida bos olmaz)
|
|
469
|
+
- window.chrome undefined (Chrome'da tanimli olmali)
|
|
470
|
+
- Permissions API davranisi
|
|
471
|
+
- Canvas fingerprint tutarsizligi
|
|
472
|
+
- WebGL renderer bilgisi
|
|
473
|
+
- screen.width / screen.height orantisizligi
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
**Onlemler:**
|
|
477
|
+
- Playwright'ta `--disable-blink-features=AutomationControlled` flag'i kullan
|
|
478
|
+
- `navigator.webdriver` override et
|
|
479
|
+
- Gercekci viewport boyutu kullan (1366x768, 1920x1080 gibi)
|
|
480
|
+
- Gercekci User-Agent string'i ayarla
|
|
481
|
+
- Persistent browser context kullan (cookie'ler korunsun)
|
|
482
|
+
- `stealth` plugin/ayarlari kullan (playwright-extra / puppeteer-extra-plugin-stealth)
|
|
483
|
+
|
|
484
|
+
---
|
|
485
|
+
|
|
486
|
+
## 7. Giris ve Dogrulama Zorluklari (Login Challenges)
|
|
487
|
+
|
|
488
|
+
### 7.1 Normal Giris
|
|
489
|
+
|
|
490
|
+
1. `https://www.instagram.com/accounts/login/` sayfasina git
|
|
491
|
+
2. `input[name='username']` alanina kullanici adini yaz
|
|
492
|
+
3. `input[name='password']` alanina sifreyi yaz
|
|
493
|
+
4. `button[type='submit']` ile giris yap
|
|
494
|
+
5. "Bilgileri kaydet" modal'inda "Simdi Degil" tikla
|
|
495
|
+
6. "Bildirimleri ac" modal'inda "Simdi Degil" tikla
|
|
496
|
+
|
|
497
|
+
### 7.2 Iki Faktorlu Dogrulama (2FA)
|
|
498
|
+
|
|
499
|
+
Giris sonrasi 2FA ekrani acilirsa:
|
|
500
|
+
- `input[name='verificationCode']` alanina kod yazilmali
|
|
501
|
+
- SMS veya Authenticator uygulamasindan gelen 6 haneli kod
|
|
502
|
+
- "Onayla" / "Confirm" butonu
|
|
503
|
+
|
|
504
|
+
**Otomasyon icin 2FA yonetimi:**
|
|
505
|
+
- TOTP (Authenticator) kullaniliyorsa: `otplib` veya benzeri kutuphane ile kod uretlebilir
|
|
506
|
+
- SMS kullaniliyorsa: Otomatik okuma mumkun degil, manuel mudahale gerekir
|
|
507
|
+
- Cookie/session kaydetme ile 2FA tekrarini en aza indir
|
|
508
|
+
|
|
509
|
+
### 7.3 Supheli Giris Tespiti (Suspicious Login)
|
|
510
|
+
|
|
511
|
+
Instagram tanimadiginiz bir cihaz/IP'den giris yapildiginda:
|
|
512
|
+
- "Bu sen miydin?" / "Was this you?" ekrani
|
|
513
|
+
- E-posta veya SMS ile dogrulama kodu gonderilir
|
|
514
|
+
- Gelen 6 haneli kodu girmek gerekir
|
|
515
|
+
|
|
516
|
+
**Tetikleyiciler:**
|
|
517
|
+
- Yeni IP adresi
|
|
518
|
+
- Yeni cihaz/tarayici
|
|
519
|
+
- Farkli cografi konum
|
|
520
|
+
- VPN/proxy kullanimi
|
|
521
|
+
|
|
522
|
+
### 7.4 Checkpoint Challenge
|
|
523
|
+
|
|
524
|
+
En agresif dogrulama yontemidir:
|
|
525
|
+
- `https://www.instagram.com/challenge/` URL'sine yonlendirilir
|
|
526
|
+
- Telefon numarasi veya e-posta dogrulamasi
|
|
527
|
+
- Bazen CAPTCHA (reCAPTCHA) istenir
|
|
528
|
+
- Bazen "Arkadaslarini sec" gorsel testi (foto'lardan arkadaslari tani)
|
|
529
|
+
|
|
530
|
+
**Checkpoint Goruldugunde:**
|
|
531
|
+
1. Otomasyonu durdur
|
|
532
|
+
2. Manuel olarak dogrulamayi tamamla
|
|
533
|
+
3. 24-48 saat bekle
|
|
534
|
+
4. Cok yavas yeniden baslat
|
|
535
|
+
|
|
536
|
+
### 7.5 Cookie/Session Yonetimi
|
|
537
|
+
|
|
538
|
+
- Basarili girisin ardindan cookie'leri kaydet
|
|
539
|
+
- Sonraki oturumlarda ayni cookie'leri kullan (tekrar giris onlenir)
|
|
540
|
+
- Cookie'lerin suresi: ~90 gun (degiskenlik gosterir)
|
|
541
|
+
- `localStorage` ve `sessionStorage` da onemli (bazi tokenlar burada)
|
|
542
|
+
- Cookie dosya yolu: profil dizininde sakla (profiles/{platform}_{username}/)
|
|
543
|
+
|
|
544
|
+
---
|
|
545
|
+
|
|
546
|
+
## 8. Onemli Notlar
|
|
547
|
+
|
|
548
|
+
### 8.1 API Durumu
|
|
549
|
+
|
|
550
|
+
- Instagram'in **kamuya acik gonderi paylasma API'si YOKTUR**
|
|
551
|
+
- Instagram Graph API sadece **Business/Creator** hesaplari icindir
|
|
552
|
+
- Graph API ile gonderi paylasma: Sadece Business hesaplar, Content Publishing API gerekli
|
|
553
|
+
- Normal hesaplar icin **tarayici otomasyonu tek yontemdir**
|
|
554
|
+
- Instagram Private API (mobil API) kullanimi TOS ihlalidir ve hizla tespit edilir
|
|
555
|
+
|
|
556
|
+
### 8.2 Web vs Mobil
|
|
557
|
+
|
|
558
|
+
- Web versiyonu mobil uygulamaya gore daha sinirlidir
|
|
559
|
+
- Web'de reel yukleme sinirli olabilir
|
|
560
|
+
- Web'de bazi filtreler bulunmaz
|
|
561
|
+
- Web'de hikaye olusturma sinirlidir (sticker vb. eksik)
|
|
562
|
+
- DM ozellikleri web'de sinirlidir
|
|
563
|
+
|
|
564
|
+
### 8.3 Dil Ayari
|
|
565
|
+
|
|
566
|
+
- Instagram arayuzu kullanicinin dil ayarina gore degisir
|
|
567
|
+
- Selectorlerde `aria-label` degerleri dile gore farklilik gosterir
|
|
568
|
+
- Turkce arayuz icin: `svg[aria-label='Begen']` vs Ingilizce: `svg[aria-label='Like']`
|
|
569
|
+
- **Oneri**: Mumkunse hesabin dilini Ingilizce'ye ayarla (daha tutarli selectorler)
|
|
570
|
+
- Veya her iki dildeki selectorlderi fallback olarak kullan
|
|
571
|
+
|
|
572
|
+
### 8.4 Dark Pattern'ler ve Popup'lar
|
|
573
|
+
|
|
574
|
+
Instagram oturum sirasinda cesitli popup'lar gosterir:
|
|
575
|
+
1. **"Bildirimleri Ac"** popup'i -> "Simdi Degil" tikla
|
|
576
|
+
2. **"Bilgilerini Kaydet"** popup'i -> "Simdi Degil" tikla
|
|
577
|
+
3. **"Uygulamayi Indir"** banner'i -> Kapat
|
|
578
|
+
4. **"Cookie Izni"** banner'i (AB kullanicilari) -> "Kabul Et" / "Accept All"
|
|
579
|
+
5. **"Hesabini Profesyonel Hesaba Donustur"** onerisi -> Kapat
|
|
580
|
+
|
|
581
|
+
Bu popup'lar otomasyon akisini bozabilir. Her adimda popup kontrolu yap:
|
|
582
|
+
```
|
|
583
|
+
Popup kontrol selectorlderi:
|
|
584
|
+
- div[role='dialog'] button:has-text('Not Now')
|
|
585
|
+
- div[role='dialog'] button:has-text('Simdi Degil')
|
|
586
|
+
- button[aria-label='Close'] (cookie banner kapatma)
|
|
587
|
+
- div[role='presentation'] (overlay)
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
### 8.5 GraphQL Endpoint'leri (Referans)
|
|
591
|
+
|
|
592
|
+
Instagram web, arka planda GraphQL API kullanir. Bazi faydali endpoint'ler:
|
|
593
|
+
- Feed yukleme: `https://www.instagram.com/graphql/query/` (feed query hash ile)
|
|
594
|
+
- Kullanici bilgisi: `https://www.instagram.com/api/v1/users/web_profile_info/?username={USERNAME}`
|
|
595
|
+
- Post detayi: `https://www.instagram.com/api/v1/media/{MEDIA_ID}/info/`
|
|
596
|
+
|
|
597
|
+
> NOT: Bu endpoint'lere dogrudan istek gonderme tavsiye edilmez.
|
|
598
|
+
> Tarayici uzerinden normal navigasyon ile verilere ulasilmalidir.
|
|
599
|
+
> API istekleri bot tespitini tetikler.
|
|
600
|
+
|
|
601
|
+
### 8.6 Embed ve oEmbed
|
|
602
|
+
|
|
603
|
+
- Post embed URL: `https://www.instagram.com/p/{SHORTCODE}/embed/`
|
|
604
|
+
- oEmbed API: `https://api.instagram.com/oembed?url={POST_URL}`
|
|
605
|
+
- Bunlar halka aciktir ve rate limit daha esnektir
|
|
606
|
+
|
|
607
|
+
### 8.7 Hesap Turleri
|
|
608
|
+
|
|
609
|
+
| Tur | Ozellikler |
|
|
610
|
+
|-----|-----------|
|
|
611
|
+
| Kisisel (Personal) | Temel ozellikler, API erisimi yok |
|
|
612
|
+
| Icerik Uretici (Creator) | Istatistikler, Insights, sinirli API |
|
|
613
|
+
| Is (Business) | Tam istatistikler, Content Publishing API, reklam |
|
|
614
|
+
|
|
615
|
+
### 8.8 Sik Karsilasilan Hatalar ve Cozumleri
|
|
616
|
+
|
|
617
|
+
| Hata | Sebep | Cozum |
|
|
618
|
+
|------|-------|-------|
|
|
619
|
+
| "Action Blocked" | Cok hizli/cok fazla islem | 24-48 saat bekle, limitleri dusur |
|
|
620
|
+
| "Please wait a few minutes" | Gecici rate limit | 5-10 dakika bekle |
|
|
621
|
+
| "Challenge Required" | Supheli aktivite | Manuel dogrulama yap |
|
|
622
|
+
| "Login Required" | Cookie/session suresi dolmus | Yeniden giris yap, cookie'leri guncelle |
|
|
623
|
+
| "Page Not Found" | Gonderi silinmis veya gizli hesap | Atlayip devam et |
|
|
624
|
+
| "User Not Found" | Hesap silinmis/yasaklanmis | Atlayip devam et |
|
|
625
|
+
| "Feedback Required" | Ciddi TOS ihlali tespiti | Otomasyon durdur, hesabi incele |
|
|
626
|
+
| Bos sayfa / Sonsuz yukleme | JavaScript hatasi veya ban | Sayfayi yenile, cookie kontrol et |
|
|
627
|
+
| "Restrict certain content" | Icerik kisitlamasi | Icerik turunu/metnini degistir |
|
|
628
|
+
|
|
629
|
+
---
|
|
630
|
+
|
|
631
|
+
## 9. Tarayici Otomasyon Ozel Notlari
|
|
632
|
+
|
|
633
|
+
### 9.1 Playwright/Puppeteer Ayarlari
|
|
634
|
+
|
|
635
|
+
```
|
|
636
|
+
Onerilen tarayici ayarlari:
|
|
637
|
+
- Viewport: 1366x768 veya 1920x1080 (gercekci masaustu boyutu)
|
|
638
|
+
- User-Agent: Guncek Chrome/Firefox UA string'i
|
|
639
|
+
- Locale: tr-TR veya en-US
|
|
640
|
+
- Timezone: Europe/Istanbul (hesap bolgesi ile uyumlu)
|
|
641
|
+
- Geolocation: Hesabin bulundugu bolge ile uyumlu
|
|
642
|
+
- Persistent context: Cookie/session korumak icin zorunlu
|
|
643
|
+
- Headless: HAYIR (mumkunse headed mod kullan, headless daha kolay tespit edilir)
|
|
644
|
+
- slowMo: 50-100ms (Playwright slowMo parametresi)
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
### 9.2 Sayfa Yukleme Stratejisi
|
|
648
|
+
|
|
649
|
+
1. Sayfaya git
|
|
650
|
+
2. `networkidle` veya `domcontentloaded` bekle
|
|
651
|
+
3. Ek 2-3 saniye bekle (dinamik icerik yuklenmesi icin)
|
|
652
|
+
4. Hedef elementi bekle (`waitForSelector`)
|
|
653
|
+
5. Element gorunur ve tiklanabilir oldugundan emin ol
|
|
654
|
+
6. Islemi gerceklestir
|
|
655
|
+
|
|
656
|
+
### 9.3 Scroll Davranisi
|
|
657
|
+
|
|
658
|
+
Instagram feed sonsuz scroll (infinite scroll) kullanir:
|
|
659
|
+
- Dogal scroll hizi kullan (birden sona atlama YAPMA)
|
|
660
|
+
- Her scroll sonrasi 2-4 saniye bekle (icerik yuklenmesi + dogallik)
|
|
661
|
+
- Bazen yukari da scroll yap (gercek kullanici davranisi)
|
|
662
|
+
- `window.scrollBy(0, 300-600)` gibi kucuk adimlarla scroll yap
|
|
663
|
+
|
|
664
|
+
### 9.4 Tiklanabilirlik Kontrolu
|
|
665
|
+
|
|
666
|
+
Instagram'da elementler bazen gorunur olsa bile tiklanabilir olmayabilir:
|
|
667
|
+
- Overlay/modal arkasinda kalabilir
|
|
668
|
+
- Lazy load henuz tamamlanmamis olabilir
|
|
669
|
+
- Element viewport disinda olabilir
|
|
670
|
+
- `element.scrollIntoView()` ile gorunur alana getir
|
|
671
|
+
- `page.waitForSelector(selector, { state: 'visible' })` kullan
|
|
672
|
+
|
|
673
|
+
---
|
|
674
|
+
|
|
675
|
+
## 10. Ozet: Altin Kurallar
|
|
676
|
+
|
|
677
|
+
1. **YAVAS OL**: Instagram'da hiz en buyuk dusmandir. Her islem arasinda 5-30 saniye bekle.
|
|
678
|
+
2. **RASTGELE OL**: Ayni paternleri tekrarlama. Gecikmeler, islem siralari, icerikler degisken olmali.
|
|
679
|
+
3. **AZ YAP**: Gunluk toplam eylem sayisini 150-300 ile sinirla.
|
|
680
|
+
4. **ISINMA**: Yeni hesaplarda veya uzun aradan sonra cok yavas baslat (1-2 hafta isinma sureci).
|
|
681
|
+
5. **ACTION BLOCK = DUR**: Eylem engeli gorursen TUM otomasyonu en az 24 saat durdur.
|
|
682
|
+
6. **COOKIE KAYDET**: Her basarili giris sonrasi cookie'leri sakla, gereksiz yeniden giris yapma.
|
|
683
|
+
7. **POPUP KONTROL**: Her adimda beklenmedik popup/modal kontrolu yap.
|
|
684
|
+
8. **GERCEKCI OL**: Headless mode kacinilmali, gercekci viewport/UA/timezone kullanilmali.
|
|
685
|
+
9. **MOLALAR VER**: Surekli aktif olma, 30-60 dakikada bir mola ver.
|
|
686
|
+
10. **DILI SABITLE**: Selectorlerin tutarli olmasi icin arayuz dilini Ingilizce'de tut veya iki dilde fallback kullan.
|