2010-08-20 17 views
13

Bu yüzden ağabeyim Python'da bir web tarayıcısı yazmamı istedi (kendinden geçmiş) ve C++, Java ve biraz html biliyorum. Ben 2.7 sürümünü kullanıyorum ve python kitaplığını okuyorum, ancak bir kaç sorunum var 1. httplib.HTTPConnection ve request bana yeni bir kavram ve çerez veya bir örnek gibi bir html komut dosyası indirip indirmediğini anlamıyorum. Her ikisini de yaparsanız, bir web sitesi sayfası için kaynak alır mısınız? Ve sayfayı değiştirmek ve değiştirilen sayfayı döndürmek için bilmem gereken bazı kelimeler.Python Web Tarayıcıları ve "alma" html kaynak kodu

Sadece arka planı için, bir sayfayı indirip ben

sahip olanlarla herhangi img değiştirmeniz gerekiyor Sizler bana 2,7 ve 3,1

+0

Hangi Python modülünü veya kütüphanesini kullanıyorsunuz? Bu ne demek istiyorsun? –

+0

@David - Belirli bir sayfadaki tüm img dosyaları için yaptığım özniteliklerimi – danutenshu

cevap

37

Python 2.7 kullanın, şu anda daha fazla 3. parti kitaplığı var. (Düzelt: aşağıya bakın).

Web kaynaklarını rahatça alabilmeniz için stdlib modülünü urllib2 kullanmanızı öneririm. Örnek: kod ayrıştırma için

import urllib2 

response = urllib2.urlopen("http://google.de") 
page_source = response.read() 

, BeautifulSoup de bakabilirsiniz.

BTW: Tam olarak yapmak istediğiniz ne:

Sadece arka planı için, bir sayfayı indirip olanlarla herhangi img değiştirmeniz gerekiyor Ben

Düzenleme: O 2014 var Şimdi, önemli kütüphanelerin çoğu tasvir edilmiştir ve yapabiliyorsanız kesinlikle Python 3'ü kullanmalısınız. python-requests, urllib2'dan daha kolay kullanılabilen çok güzel bir yüksek düzey kütüphanedir.

+0

sadece nitpick için, 'urlopen'den geri döndüğünüz şey' request' nesnesi değil, bir yanıt nesnesi. – aaronasterling

+0

Oops. Teşekkür ederim. – leoluk

+0

Google logosunu görüyorsanız, Mcdonalds logolu olarak değiştirin.ya da google görüntülerine giderseniz, seçtiğiniz bir görüntüden başka bir şey göremezsiniz – danutenshu

0

ilk iş fikirlerinizi söylerseniz iyi olurdu Yapmanız gereken şey, tel üzerinden almayı bekleyeceğiniz şeyleri açıklayan HTTP spec. İçerik içinde döndürülen veriler, kaynak değil "işlenen" web sayfası olacaktır. Kaynak bir JSP, bir sunucu, bir CGI betiği olabilir, kısacası her şey hakkında, ve buna erişiminiz yok. Sadece sunucunun size gönderdiği HTML'yi alırsınız. Statik bir HTML sayfası durumunda, o zaman evet, "kaynağı" göreceksiniz. Fakat başka bir şey için, oluşturulan HTML'yi görürsünüz, kaynak değil.

modify the page and return the modified page derken ne demek istiyorsunuz?

+0

düzelttim, bir google logosunu görüyorsanız yeni bir – danutenshu

+0

ile değiştirin, Mcdonalds logosuyla değiştirin – danutenshu

+0

bana gönderdiğiniz bağlantı çok büyük. HTTP hakkında bilgi edinmek için – danutenshu