- Yasaklandı
- #1
>>> Selenium İlk Konu <<<
İlk konuyu okuduysanız aşağıdaki şekilde IWebDriver nesnesi oluşturmayı öğrenmiştik.
Bildiğiniz üzere ChromeDriver sınıfı birden fazla yapıcı metot (Constructor) içeriyor yani parametreler alan yapıcı metotları da mevcut
Örneğin
Biz bu ChromeOptions sınıfını kullanarak öncelikle UserAgent eklemeyi deneyeceğiz ama öncelikle
bilmeyen arkadaşlar için UserAgent nedir kısaca bir açıklayalım.
İnternet dediğimiz şey bir sunucu ve bir istemci arasındaki bağdır. Biz internette gezerken bazı kimliklere ihtiyaç duyarız mesela IP adresi gibi.
Tıpkı bilgisayarınızın olduğu gibi tarayıcınız da bir kimliğe ihtiyaç duyar ve bu yüzden User Agent denilen metinleri kullanır. İşte bu metinler sizin hangi tarayıcının hangi versiyonunu kullandığınızı ve işletim sisteminizin ne olduğunu sunucuyla paylaşır. Bazı "güvenli" internet siteleri User Agent verisi olmayan kullanıcıları (tarayıcıları) bot olarak görüp siteye girişini engeller. Geliştirici arkadaşların Captcha yönteminden sonra genelde kullandığı yöntem budur.
Konumuza dönecek olursak öncelikle bir ChromeOptions nesnesi oluşturmamız lazım ve buna User Agent verisini kendimiz vermemiz lazım.
Dipnot: Bu tanımlamaları harici bir fonksiyonun içinde yapmanız en sağlıklısı.
Dipnot2: UserAgent verinizin değişip değişmediğini >>
Gireceğimiz siteyi bu şekilde "Ben iOS6 kullanan bir iPad'im ve şuan Safari kullanıyorum." diyerek kandırmış olduk.
Gelelim proxy kullanımına proxy için bir nesne oluşturmamız ve bu oluşturduğumuz nesnenin HttpProxy değişkenini ayarlayıp bunu myOptions değişkenimize göndermemiz lazım.
Yani kısacası yeni kodumuz şu şekilde olacaktır.
Bu konumuz bu kadar, herkese iyi forumlar.
İlk konuyu okuduysanız aşağıdaki şekilde IWebDriver nesnesi oluşturmayı öğrenmiştik.
C#:
IWebDriver driver = new ChromeDriver();
Bildiğiniz üzere ChromeDriver sınıfı birden fazla yapıcı metot (Constructor) içeriyor yani parametreler alan yapıcı metotları da mevcut
Örneğin
Kod:
IWebDriver driver = new ChromeDriver(ChromeOptions opt1);
Biz bu ChromeOptions sınıfını kullanarak öncelikle UserAgent eklemeyi deneyeceğiz ama öncelikle
bilmeyen arkadaşlar için UserAgent nedir kısaca bir açıklayalım.
İnternet dediğimiz şey bir sunucu ve bir istemci arasındaki bağdır. Biz internette gezerken bazı kimliklere ihtiyaç duyarız mesela IP adresi gibi.
Tıpkı bilgisayarınızın olduğu gibi tarayıcınız da bir kimliğe ihtiyaç duyar ve bu yüzden User Agent denilen metinleri kullanır. İşte bu metinler sizin hangi tarayıcının hangi versiyonunu kullandığınızı ve işletim sisteminizin ne olduğunu sunucuyla paylaşır. Bazı "güvenli" internet siteleri User Agent verisi olmayan kullanıcıları (tarayıcıları) bot olarak görüp siteye girişini engeller. Geliştirici arkadaşların Captcha yönteminden sonra genelde kullandığı yöntem budur.
Konumuza dönecek olursak öncelikle bir ChromeOptions nesnesi oluşturmamız lazım ve buna User Agent verisini kendimiz vermemiz lazım.
C#:
private void Form1_Load(object sender, EventArgs e)
{
ChromeOptions myOptions = new ChromeOptions();
myOptions.AddArgument("--user-agent=Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25");
IWebDriver driver = new ChromeDriver(myOptions);
}
Dipnot2: UserAgent verinizin değişip değişmediğini >>
Bağlantıları görmek için lütfen
Giriş Yap
<< kontrol edebilirsiniz.Gireceğimiz siteyi bu şekilde "Ben iOS6 kullanan bir iPad'im ve şuan Safari kullanıyorum." diyerek kandırmış olduk.
Gelelim proxy kullanımına proxy için bir nesne oluşturmamız ve bu oluşturduğumuz nesnenin HttpProxy değişkenini ayarlayıp bunu myOptions değişkenimize göndermemiz lazım.
Yani kısacası yeni kodumuz şu şekilde olacaktır.
C#:
ChromeOptions myOptions = new ChromeOptions();
//---------------------------//
var myProxy = new Proxy();
myProxy.HttpProxy = "localhost:80";
myOptions.Proxy = myProxy;
//---------------------------//
myOptions.AddArgument("--user-agent=Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25");
IWebDriver driver = new ChromeDriver(myOptions);
Bu konumuz bu kadar, herkese iyi forumlar.