Web Yakalama ve Dönüştürme Araçları
Grabz's Çevrimiçi Topluluğu

Demoyu python ile çalıştırdığımda hata alıyorum

Web sayfalarını veya HTML'yi nasıl yakalayacağınız veya dönüştüreceğinizle ilgili sorular sorun into Resimler, CSV, PDF veya DOCX belgeleri ve ayrıca videoların nasıl dönüştürüleceği intAPI'mızı kullanan animasyonlu GIF'ler.

hata:

Geri izleme (en son yapılan arama):

  Dosya "GrabzItClient.py", satır 6,

    yakala.SaveTo("belgeler/sonuç.docx")

  Dosya "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", satır 235, SaveTo

    kimlik = öz.Save()

  Dosya "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", satır 209, Save

    obj = self._take(sig, callBackURL)

  Dosya "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", satır 223, _take'de

    return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))

  HTTPPost'ta "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py" dosyası, satır 629

    h.endheaders()

  Uç başlıklarda "C:\Program Files\Python36\lib\http\client.py" dosyası, satır 1234

    self._send_output(message_body, encode_chunked=encode_chunked)

  Dosya "C:\Program Files\Python36\lib\http\client.py", satır 1026, _send_output'ta

    kendini.gönder(mesaj)

  Dosya "C:\Program Files\Python36\lib\http\client.py", satır 964, gönderiliyor

    self.connect()

  Dosya "C:\Program Files\Python36\lib\http\client.py", satır 936, bağlantıda

    (self.host,self.port), self.zaman aşımı, self.kaynak_adresi)

  Create_connection'da "C:\Program Files\Python36\lib\socket.py" dosyası, satır 704

    getaddrinfo(host, port, 0, SOCK_STREAM) içindeki res için:

  Getaddrinfo'da "C:\Program Files\Python36\lib\socket.py" dosyası, satır 743

    _socket.getaddrinfo'daki res için (ana bilgisayar, bağlantı noktası, aile, tür, protokol, bayraklar):

socket.gaierror: [Errno 11001] getaddrinfo başarısız oldu

 

kaynak:(GrabzIt'i kurdum ve UYGULAMA ANAHTARI ve UYGULAMA SECRET'ini aldım)

GrabzIt'ten GrabzItClient'i içe aktarın

 

grabzIt = GrabzItClient.GrabzItClient(UYGULAMA ANAHTARI, UYGULAMA GİZLİ)

yakala.HTMLToDOCX(" Selam Dünya! ") 

yakala.SaveTo("belgeler/sonuç.docx") 

 

bana ne yapmam gerektiğini söyleyebilir misin?

21 Ağustos 2018'de isimsiz bir kişi tarafından soruldu

Topluluğa hoş geldiniz!

Genellikle bir socket.gaierror: [Errno 11001] getaddrinfo başarısız oldu kodun bir güvenlik duvarı veya proxy arkasından çağrılmasından kaynaklanır. Lütfen uygulamanın 80 numaralı bağlantı noktasına erişimi olduğundan emin olun.

GrabzIt Desteği tarafından 21 Ağustos 2018'de yanıtlandı

Cevap için teşekkür ederim.

Evet proxy sorunu. Proxy olmayan diğer bilgisayarı değiştirdiğimde sorunsuz çalışıyor.

Proxy ile nasıl çalışabilir?

21 Ağustos 2018'de anonim tarafından yanıtlandı

Bu yeni bir özellik olacak. Python istemcisini proxy sunucuların kullanılmasını sağlayacak şekilde değiştirip değiştiremeyeceğimizi arıyoruz.

Mümkünse, bir düzeltmeyle size geri döneceğiz. Tüm müşterilerimiz açık kaynak olduğundan, isterseniz kendiniz de deneyebilirsiniz: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

GrabzIt Desteği tarafından 21 Ağustos 2018'de yanıtlandı

Yeni özelliği ekledik. Sadece GrabzItClient.py dosyasını indirin ve kopyanızı buradan değiştirin: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Daha sonra yeni SetLocalProxy yöntemini kullanarak proxy sunucunuzun proxy URL'sini ayarlayabilirsiniz, örneğin:

grabzIt.SetLocalProxy("http://123.123.123.123:21231")

Lütfen şimdi nasıl gittiğini bize bildirin, yakında yeni bir sürüm çıkaracağız!

GrabzIt Desteği tarafından 21 Ağustos 2018'de yanıtlandı

Cevap için teşekkür ederim.

Değiştirdim GrabzItClient.py'yi açtım ve kaynağımı değiştirdim:

 

 

grabzIt = GrabzItClient.GrabzItClient(UYGULAMA ANAHTARI, UYGULAMA GİZLİ)

grabzIt.SetLocalProxy("http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080")

yakala.HTMLToDOCX(" Selam Dünya! ") 

yakala.SaveTo("belgeler/sonuç.docx") 

 

kullanıcı:xxx@jp.xxxxx.com

şifre:yyyyyyy

Proxy sunucu:zzz.proxy.zzz.zzzzzzz.com

Liman:8080

 

hata mesajı:

Geri izleme (en son yapılan arama):
  Dosya "GrabzIt_test.py", satır 54,
    yakala.SaveTo("sonuç.docx")
  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 487, SaveTo
    kimlik = öz.Save()
  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 435, Save
    obj = self._take(sig, callBackURL)
  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 463, _take'de
    return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
  HTTPPost'ta "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py" dosyası, satır 1307
    başlıklar['Proxy Yetkilendirmesi'] = 'Temel ' + base64.b64encode(auth)
  Dosya "C:\Program Files\Python36\lib\base64.py", satır 58, b64encode'da
    kodlanmış = binascii.b2a_base64(s, yenisatır=Yanlış)
TypeError: 'str' değil, bayt benzeri bir nesne gerekli

 

değiştirdiğim halde aynı hata mesajı Yerel Proxy'yi Ayarla "danhttp://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"için "http://xxx%40jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"

 

22 Ağustos 2018'de anonim tarafından yanıtlandı

kusura bakmayın, yanlış proxy'yi ayarlamış olabilirim.

Proxy'yi "http://the_other_proxy_server:port" olarak değiştirdim ve hata mesajı şöyle oldu:

Geri izleme (en son yapılan arama):
  Dosya "GrabzIt_test.py", satır 54,
    yakala.SaveTo("sonuç.docx")
  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 487, SaveTo
    kimlik = öz.Save()
  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 435, Save
    obj = self._take(sig, callBackURL)
  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 463, _take'de
    return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
  HTTPPost'ta "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py" dosyası, satır 1327
    h.endheaders()
  Uç başlıklarda "C:\Program Files\Python36\lib\http\client.py" dosyası, satır 1234
    self._send_output(message_body, encode_chunked=encode_chunked)
  Dosya "C:\Program Files\Python36\lib\http\client.py", satır 1026, _send_output'ta
    kendini.gönder(mesaj)
  Dosya "C:\Program Files\Python36\lib\http\client.py", satır 964, gönderiliyor
    self.connect()
  Dosya "C:\Program Files\Python36\lib\http\client.py", satır 940, bağlantıda
    self._tunnel()
  Dosya "C:\Program Files\Python36\lib\http\client.py", satır 919, _tunnel'de
    mesaj.strip()))
OSError: Tünel bağlantısı başarısız oldu: 407 Proxy Kimlik Doğrulaması Gerekli

22 Ağustos 2018'de anonim tarafından yanıtlandı

Kullanıcı adınızı ve şifrenizi şu şekilde belirtmeniz gerekir: http://username:password@example.com:12335

GrabzIt Desteği tarafından 22 Ağustos 2018'de yanıtlandı

Evet, kullanıcı adımı ve şifremi (22 Ağustos 2018 Çarşamba 09:34:43 AM tarihli soru) şu şekilde belirledim:

http://username:password@example.com:12335

kullanıcı adı E-posta adresi (xxx@jp.xxxxx.com) olduğundan xxx%40jp.xxxxx.com olarak değiştirdim

ancak aynı hata mesajı: TypeError: bayt benzeri bir nesne gerekli, 'str' değil

22 Ağustos 2018'de anonim tarafından yanıtlandı

Üzgünüm, önceki yanıtınızı kaçırmışım. Bunun bir Python 3 sorunu olduğunu düşünüyorum ve hatayı çözecek bir düzeltme yayınladım. Lütfen GrabzItClient.py'yi şu adresten tekrar güncelleyebilir misiniz: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

GrabzIt Desteği tarafından 22 Ağustos 2018'de yanıtlandı

Python dosyasını değiştirdim ve yeni hata mesajı buldum:

Geri izleme (en son yapılan arama):

  Dosya "GrabzIt_test.py", satır 54,

    yakala.SaveTo("sonuç.docx")

  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 244, SaveTo

    kimlik = öz.Save()

  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 218, Save

    obj = self._take(sig, callBackURL)

  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 232, _take'de

    return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))

  HTTPPost'ta "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py" dosyası, satır 661

    başlıklar['Proxy Yetkilendirmesi'] = 'Temel ' + encodedAuth

TypeError: bayt değil str olmalıdır

22 Ağustos 2018'de anonim tarafından yanıtlandı

Tamam, şifresini çözdük intya da ascii. Python 3 kullanmıyoruz, bu yüzden bizi yakaladı. Lütfen kodunuzu buradan güncelleyin: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Bu açık kaynak olduğundan, hata ayıklamaktan ve istediğiniz iyileştirmeleri Github'a yapmaktan çekinmeyin. Kurulumunuza erişimimiz olmadığından.

GrabzIt Desteği tarafından 22 Ağustos 2018'de yanıtlandı

Yardımın için çok teşekkürler.

OSError: Tünel bağlantısı başarısız oldu: 407 Proxy Kimlik Doğrulaması Gerekli

Hata ayıklamaya çalışacağım. 

22 Ağustos 2018'de anonim tarafından yanıtlandı

Sorunun ne olduğunu bildiğimizi düşünüyoruz ancak kodun bir kısmının yeniden yazılması gerekecek. Bu yüzden işiniz bittiğinde sizinle iletişime geçeceğiz. Umarım 24 saat içinde.

GrabzIt Desteği tarafından 22 Ağustos 2018'de yanıtlandı

Sorunu çözdüğümüze inanıyorum! En son sürümü buradan alabilirsiniz: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

GrabzIt Desteği tarafından 22 Ağustos 2018'de yanıtlandı

Cevabınız için teşekkürler.

Yeni hata mesajı:

Geri izleme (en son yapılan arama):
  Dosya "GrabzIt_test.py", satır 54,
    yakala.SaveTo("sonuç.docx")
  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 243, SaveTo
    kimlik = öz.Save()
  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 217, Save
    obj = self._take(sig, callBackURL)
  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 231, _take'de
    return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
  HTTPPost'ta "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py" dosyası, satır 629
    h = self._getConnection()
  Dosya "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", satır 679, _getConnection'da
    h.putheader('proxy yetkilendirmesi', 'Temel ' + encodedAuth)
  Putheader'da "C:\Program Files\Python36\lib\http\client.py" dosyası, satır 1201
    CannotSendHeader()'ı yükselt
http.client.CannotSendHeader

 

22 Ağustos 2018'de anonim tarafından yanıtlandı

Şurada bazı küçük iyileştirmeler yaptık: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Python 2.7, 3.4 ve 3.6'da test ettik ve proxy'li, proxy'siz ve yetkili proxy'li tüm ortamlarda çalışıyor.

Eğer hala işinize yaramıyorsa kodda hata ayıklamanız gerekecektir.

GrabzIt Desteği tarafından 23 Ağustos 2018'de yanıtlandı

Cevabınız için teşekkür ederim.

Kaynağımın hatalarını ayıklayacağım.

Bu arada, Email olan kullanıcı adını xxx@yyy.com gibi test ettiniz mi?

23 Ağustos 2018'de anonim tarafından yanıtlandı

Hayır, bunun düzgün bir şekilde kodlanması ve kodunun çözülmesi gerekmiyordu, bu yüzden belki sorun budur.

GrabzIt Desteği tarafından 23 Ağustos 2018'de yanıtlandı