Thread Starter
#0
Bir bilet veya randevu botu geliştirmek, otomasyon ve web scraping konularında oldukça ilginç bir süreçtir. Bu yazıda, Cheerio kütüphanesini kullanarak bir form nasıl doldurulur, nasıl submit edilir ve oturum yönetimi nasıl yapılır, bunları detaylı bir şekilde inceleyeceğiz.
İlk olarak, Cheerio kütüphanesi, jQuery benzeri bir API sunarak DOM elemanlarına kolayca erişim sağlamaktadır. Bunu kullanarak hedef web sayfasındaki form elemanlarını seçebilir ve doldurabilirsiniz. Örneğin, bir form içindeki input alanlarının değerlerini değiştirmek için şu şekilde bir kod yazabilirsiniz:
Formu doldurduktan sonra, bu formu göndermek için bir HTTP POST isteği yapmalısınız. Bunun için tekrar axios kullanarak aşağıdaki gibi bir işlem gerçekleştirebilirsiniz:
Oturum yönetimi, botunuzun çalışması için kritik bir öneme sahiptir. Hedef web sitesi genellikle oturum çerezlerine dayanarak kullanıcı doğrulaması yapar. Bu nedenle, ilk isteğinizden gelen çerezleri saklamalı ve sonraki isteklerinizde bunları kullanmalısınız. Axios, çerezleri yönetmek için
Bu yapı ile, bilet veya randevu almak için gerekli adımları tamamlamış olacaksınız. Özetle, Cheerio ile form doldurma, axios ile POST gönderimi ve çerez yönetimi gibi temel bileşenler, botunuzun etkin bir şekilde çalışmasını sağlamak için bir araya gelir.
Bu tür botların geliştirilmesi sırasında karşılaşabileceğiniz zorluklar ve önerileriniz var mı?
İlk olarak, Cheerio kütüphanesi, jQuery benzeri bir API sunarak DOM elemanlarına kolayca erişim sağlamaktadır. Bunu kullanarak hedef web sayfasındaki form elemanlarını seçebilir ve doldurabilirsiniz. Örneğin, bir form içindeki input alanlarının değerlerini değiştirmek için şu şekilde bir kod yazabilirsiniz:
CODE
12345678910111213141516
const cheerio = require('cheerio');
const axios = require('axios');
async function fetchForm(url) {
const { data } = await axios.get(url);
const $ = cheerio.load(data);
// Formu seçmek
const form = $('form');
// Input alanlarını doldurmak
form.find('input[name="name"]').val('John Doe');
form.find('input[name="email"]').val('john@example.com');
return form;
}
Formu doldurduktan sonra, bu formu göndermek için bir HTTP POST isteği yapmalısınız. Bunun için tekrar axios kullanarak aşağıdaki gibi bir işlem gerçekleştirebilirsiniz:
CODE
12345
async function submitForm(formAction, formData) {
const response = await axios.post(formAction, formData);
return response.data;
}
Oturum yönetimi, botunuzun çalışması için kritik bir öneme sahiptir. Hedef web sitesi genellikle oturum çerezlerine dayanarak kullanıcı doğrulaması yapar. Bu nedenle, ilk isteğinizden gelen çerezleri saklamalı ve sonraki isteklerinizde bunları kullanmalısınız. Axios, çerezleri yönetmek için
axios-cookiejar-support kütüphanesini kullanarak bu süreci kolaylaştırır. Örnek kullanım:CODE
123456789101112
const { wrapper } = require('axios-cookiejar-support');
const tough = require('tough-cookie');
const jar = new tough.CookieJar();
const client = wrapper(axios.create({ jar }));
async function main() {
await fetchForm('https://example.com/form');
const formData = { name: 'John Doe', email: 'john@example.com' };
await submitForm('https://example.com/submit', formData);
}
Bu yapı ile, bilet veya randevu almak için gerekli adımları tamamlamış olacaksınız. Özetle, Cheerio ile form doldurma, axios ile POST gönderimi ve çerez yönetimi gibi temel bileşenler, botunuzun etkin bir şekilde çalışmasını sağlamak için bir araya gelir.
Bu tür botların geliştirilmesi sırasında karşılaşabileceğiniz zorluklar ve önerileriniz var mı?