# Xiaozhu Scraper - Location Xujiahui Campus

Scraper automatique pour trouver un appart 1 mois près de Jiaoda (Xujiahui Campus).

## Setup (première fois uniquement)

```bash
cd /mnt/e/Users/Alexis\ Trouvé/Documents/Projets/couple_matters/tools
npm install puppeteer
```

## Utilisation

### Étape 1 : Login (première fois seulement)

```bash
LOGIN_MODE=true node xiaozhu_scraper.js
```

**Ce qui va se passer :**
1. Un navigateur Chrome s'ouvre automatiquement
2. Tu te connectes à Xiaozhu manuellement (WeChat, téléphone, etc.)
3. Une fois connecté, tu appuies sur **Enter** dans le terminal
4. Les cookies sont sauvegardés dans `xiaozhu_cookies.json`

### Étape 2 : Lancer la recherche

```bash
node xiaozhu_scraper.js
```

**Ce qui va se passer :**
1. Le script charge tes cookies
2. Va sur Xiaozhu avec tes filtres
3. Extrait toutes les annonces
4. Filtre selon tes critères (budget, équipements, distance)
5. Score et trie les résultats
6. Génère 2 fichiers :
   - `xiaozhu_results.json` (données brutes)
   - `xiaozhu_results.md` (tableau lisible)

## Critères de recherche

**Configuré pour :**
- 📅 **Dates :** 24 déc 2025 → 22 jan 2026 (29 jours)
- 💰 **Budget :** 3000-5000 RMB/mois (idéal 3000-4000)
- 📍 **Zone :** Xujiahui District (徐汇区)
- 🚇 **Métro :** Max 25 min du campus (lignes 1, 7, 9, 10, 11)
- ✅ **Must-have :** Cuisine + frigo
- 🎁 **Bonus :** Machine à laver, proche métro

**Stations prioritaires (ordre préférence) :**
1. 交通大学 (Jiaotong University) - lignes 10, 11 - 0 min
2. 徐家汇 (Xujiahui) - lignes 1, 9, 11 - 5 min
3. 衡山路 (Hengshan Road) - ligne 1 - 10 min
4. 常熟路 (Changshu Road) - lignes 1, 7 - 10 min
5. 上海体育馆 (Shanghai Stadium) - lignes 1, 4 - 15 min
6. 龙华 (Longhua) - lignes 11, 12 - 15 min
7. 七宝 (Qibao) - ligne 9 - 25 min

## Scoring

Le script donne un **score** à chaque appart (plus haut = mieux) :

- **Prix idéal (≤4000 RMB) :** +bonus
- **Prix > 4000 RMB :** Petit malus proportionnel
- **Machine à laver :** +10 points
- **Proche métro :** +15 points
- **Temps métro estimé :** -0.5 point/minute

## Output

### xiaozhu_results.md

Tableau Markdown avec :
- Rank (1 = meilleur)
- Prix mensuel
- Localisation
- Équipements (✓/✗)
- Score global
- Lien vers l'annonce

### Terminal

Affiche les **TOP 5** directement avec toutes les infos.

## Troubleshooting

### "Cookies not found"
→ Lance d'abord en mode LOGIN : `LOGIN_MODE=true node xiaozhu_scraper.js`

### "Timeout waiting for listings"
→ La structure HTML du site a changé. Il faut inspecter la page et mettre à jour les sélecteurs dans le script.

### Cookies expirés
→ Relance le mode LOGIN pour renouveler.

### Pas de résultats
→ Vérifie que l'URL de recherche est correcte (peut changer selon le site).

## Modification des critères

Édite le fichier `xiaozhu_scraper.js`, section `CONFIG` :

```javascript
const CONFIG = {
  budgetMax: 5000,        // Change budget max
  budgetIdeal: 4000,      // Change budget idéal
  maxMetroTime: 25,       // Change temps métro max
  topN: 20                // Change nombre de résultats
};
```

## Next Steps

**Une fois les résultats obtenus :**

1. Check les TOP 5-10 manuellement sur Xiaozhu
2. Vérifier photos, avis, description complète
3. Contacter les propriétaires (Tingting peut aider)
4. Questions à poser (en chinais) :
   - 押金多少？(Combien de dépôt ?)
   - 包水电煤吗？(Charges incluses ?)
   - 可以月付吗？(Paiement mensuel possible ?)
   - 离交通大学多远？(Distance de Jiaotong Uni ?)
   - 有合同吗？(Contrat formel ?)

## Structure fichiers

```
tools/
├── xiaozhu_scraper.js       # Script principal
├── xiaozhu_package.json     # Dépendances npm
├── xiaozhu_cookies.json     # Cookies (auto-généré après login)
├── xiaozhu_results.json     # Résultats bruts (auto-généré)
├── xiaozhu_results.md       # Tableau lisible (auto-généré)
└── XIAOZHU_README.md        # Ce fichier
```

---

**Note :** Le script utilise des **sélecteurs HTML placeholders**. Il faudra probablement les ajuster après avoir inspecté la vraie structure de Xiaozhu. Si besoin, demande à Claude de t'aider à les mettre à jour.
