SORU
18 Aralık 2011, Pazar


Scrapy AJAX kullanan web sitelerinin dinamik içerik kazımak için kullanılabilir mi?

Son zamanlarda Python öğrenme edilmiştir ve web kazıyıcı bir binaya elimi daldırma. Hiçbir şey fantezi değil; onun tek amacı verileri bir bahis sitesi almak ve bu verileri Excel içine koyduk.

Bu sorunların çoğu çözülebilir ve küçük iyi bir durum yaşıyorum. Ancak bir konu üzerinde büyük bir engel basıyorum. Bir site atları ve listeleri bir tablo yüklenirse güncel bahis fiyatları bu bilgiler herhangi bir kaynak dosyası değil. İpucu bu verileri canlı bazen, sayıları belli bir uzak sunucudan güncelleştirilmiş olmak. Benim PC HTML sadece kendi sunucuları lazım gelen ilginç veri bastırıyor bir delik vardır.

Şimdi dinamik web içeriği ile benim deneyim düşüktür, bu bela başımı alamıyorum bir şey.

Java veya Javascript bir anahtar olduğunu düşünüyorum, bu kadar sık açılır.

Kazıyıcı sadece oran karşılaştırma motorudur. Bazı siteler, API var ama olmayanlar için buna ihtiyacım var. Python 2.7 ile scrapy kitaplığı kullanıyorum

Eğer bu soru açık uçlu ise çok özür dilerim. Kısacası, benim soru: nasıl scrapy kullanabilirsiniz böylece bu dinamik veri kazımak için kullanılabilir mi? Gerçek zamanlı olarak bu bahis oran veri bulabilirim?

Güzel :)

CEVAP
3 Ocak 2013, PERŞEMBE


Burada ajax ile scrapy kullanarak basit bir örnek isteyin. http://www.rubin-kazan.ru/guestbook.html Tüm mesajları ajax isteği ile dolu bir site görelim. Amacım tüm özellikleri ile bu mesajları almak için (yazar, tarih, ...).

enter image description here

Sayfanın kaynak kodunu incelediğimde web sayfası ajax teknolojisini kullanmak için tüm bu mesajları göremiyorum. Ama Mozila Firefox Firebug ile (veya başka bir tarayıcıda benzetme bir alet) web sayfasında iletileri oluşturmak için bir Http isteği analiz eder. enter image description here

Bu amaçla tüm sayfa ama mesajlar içeren sayfa sadece bir bölümünü yeniden yüklemek istemiyorum. Bu amaçla ben enter image description hereve ileti gövdesi hakkında sorumlu olan HTTP isteği görüyorum altta page rasgele bir numara enter image description here

Bitirdikten sonra istek başlıklarını (bu var bölümünden kaynak sayfadan özü, aşağıdaki kodu görüşürüz url teklif etmeliyim) analiz eder. enter image description here

ve form veri içeriği isteği (Http yöntemidir "") Sonrası

enter image description here

ve Json dosyası olan yanıt, içeriği

enter image description here

aradığım tüm bilgiler mevcut.

Bundan scrapy tüm bu bilgiyi uygulamak gerekir. Bu amaçla örümcek tanımlayalım.

  class spider(BaseSpider):
      name = 'RubiGuesst'
      start_urls = ['http://www.rubin-kazan.ru/guestbook.html']

    def parse(self, response):
      url_list_gb_messages = re.search(r'url_list_gb_messages="(.*)"', response.body).group(1)
      yield FormRequest('http://www.rubin-kazan.ru'   url_list_gb_messages, callback=self.RubiGuessItem, formdata={'page': str(page   1), 'uid': ''})
    def RubiGuessItem(self, response):
       json_file = response.body

Ayrıştırma işlevi ilk isteğin yanıtı var. RubiGuessİtem içinde json tüm bilgileri dosya var.

Bu cevap size yardımcı olacağını umuyoruz. Saygılarımla.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kiddyzuzaa

    Kiddyzuzaa

    25 ŞUBAT 2014
  • optionalinfo

    optionalinfo

    29 EKİM 2005
  • thelonelyisland

    thelonelyisl

    23 Aralık 2005