"Kimse tarafından bulunamamış" diye bir şey yok, belliki yanlış kopyalama yapıyosun çünkü çoğu kişi de hata olmamış. Artı python 3'te hata alman doğal çünkü bu python 2 için yapıldı. Ayrıca bu bir modül, tam olarak nasıl çalıştırmayı denedin nasıl kullandın, bunları ayrıntılı olarak yazmadığın için de kimse nasıl cevap vereceğini bilememiş olabilir. Yoksa syntax hatası kimse tarafından bulunamayan bir hata asla olamaz.
Yeni Üye
Üyelik Tarihi: 10-11-2016
Yorum Sayısı: 4
Konu Sayısı: 0
Rep Puanı:
0
bulunamayan hata derken önceden yazdıgımı kastetmiştim ki bu hatayı alanlarda varmış ve sen o kişiye "Hmm bu maalesef socket hatası başka kodlarda da karşına çıkar. Qpython veri temizle veya baştan kur, olmadi güncelle vs. Bu hatanın tam çözümünü anlayamadık çünkü." diye bir cevap vermişsin bunu gördugum için öyle dedim ve önce internette araştırmıştım zaten bu hatayı bulamayınca buraya sordum yoksa benım derdim syntax hatası değil sadece başka denediğim yolları söyledim
Üye

Üyelik Tarihi: 28-04-2017
Yorum Sayısı: 98
Konu Sayısı: 0
Rep Puanı:
0
Merhaba arkadaşlar linux ortamında proxy tarama için kod buldum fakat istediğim gibi değil proxylist.txt dosyasındaki proxy sayısını ekrana yazılmasını ve o anda kaçtane taradığını göstermesini,çalışan proxyleride validproxy.txt olarak kaydetmesini istiyorum
Kodları aldığım yer:http://stackoverflow.com/questions/10860983/python-proxy-list-check
Burada istekte bulunan arkadaş başına x ve sıfır eklenmesini istemiş sanırım çalışanlar 0 çalışmayan proxyler ise x fakat ben bunların eklenmesini istemiyorum çalışan proxyleri olduğu gibi validproxy.txt dosyasına kaydetsin yeterli benim için.
Yardımcı olursanız sevinirim iyi çalışmalar iyi forumlar.
Kod:
#!/usr/bin/env python
import Queue
import threading
import urllib2
import time
input_file = 'proxylist.txt'
threads = 10
queue = Queue.Queue()
output = []
class ThreadUrl(threading.Thread):
"""Threaded Url Grab"""
def __init__(self, queue):
threading.Thread.__init__(self)
self.queue = queue
def run(self):
while True:
#grabs host from queue
proxy_info = self.queue.get()
try:
proxy_handler = urllib2.ProxyHandler({'http':proxy_info})
opener = urllib2.build_opener(proxy_handler)
opener.addheaders = [('User-agent','Mozilla/5.0')]
urllib2.install_opener(opener)
req = urllib2.Request("http://www.google.com")
sock=urllib2.urlopen(req, timeout= 7)
rs = sock.read(1000)
if '<title>Google</title>' in rs:
output.append(('0',proxy_info))
else:
raise "Not Google"
except:
output.append(('x',proxy_info))
#signals to queue job is done
self.queue.task_done()
start = time.time()
def main():
#spawn a pool of threads, and pass them queue instance
for i in range(5):
t = ThreadUrl(queue)
t.setDaemon(True)
t.start()
hosts = [host.strip() for host in open(input_file).readlines()]
#populate queue with data
for host in hosts:
queue.put(host)
#wait on the queue until everything has been processed
queue.join()
main()
for proxy,host in output:
print proxy,host
print "Elapsed Time: %s" % (time.time() - start)
28-04-2017, Saat: 19:58
(Son Düzenleme: 28-04-2017, Saat: 19:58, Düzenleyen: gecemor.)
Şimdi ilk olarak söylemeliyim ki biz bu forumda bir çok proxy tarama kodu yaptık ve hepsi de linux ortamında çalışır, eğer engel teşkil eden modüller varsa ufak bir dokunuşla çalışır hale getiririz. Senin bence yapman gereken şey, bu konuya değil de sohbet veya python dili soru cevap gibi konulara bu öneriyi sunman olmalıydı. Çünkü bu konuda zaten proxy tarama kodu mevcut, en azından burdakini incelemeni ve burdakinin istediğin gibi yapılmasını istemeni tercih ederdim. Sadece kod değil, forumu gezersen uygulamalarını da yapmış olduğumuzu görürdün (exe, apk)
Neyse ikinci olarak da şunu söylemeliyim, verdiğin kod benim nazarımda çok gereksiz işlemlerle dolu, çok basit bir işlem için fazladan ayrıntya girilmiş. Ama ben her şeye rağmen yine de istediğin gibi kodu düzenledim, umarım bu konu ile ilgili foruma da (en azından konu başındaki modüle de) göz atarsın
PHP Kod:
#!/usr/bin/env python import Queue import threading import urllib2 import time
input_file = 'proxylist.txt' threads = 10
print len(open(input_file).readlines()), "adet proxy taranacak\n" time.sleep(1)
queue = Queue.Queue() output = []
class ThreadUrl(threading.Thread): """Threaded Url Grab""" def __init__(self, queue): threading.Thread.__init__(self) self.queue = queue
def run(self): while True: #grabs host from queue proxy_info = self.queue.get()
try: proxy_handler = urllib2.ProxyHandler({'http':proxy_info}) opener = urllib2.build_opener(proxy_handler) opener.addheaders = [('User-agent','Mozilla/5.0')] urllib2.install_opener(opener) req = urllib2.Request("http://www.google.com") sock=urllib2.urlopen(req, timeout= 7) rs = sock.read(1000) if '<title>Google</title>' in rs: output.append(('0',proxy_info)) print "CALISIYOR ==>", proxy_info with open("validproxy.txt", "ab") as f: f.write(proxy_info+"\n") else: raise "Not Google" except: output.append(('x',proxy_info)) print "calismiyor", proxy_info #signals to queue job is done self.queue.task_done()
start = time.time() def main():
#spawn a pool of threads, and pass them queue instance for i in range(5): t = ThreadUrl(queue) t.setDaemon(True) t.start() hosts = [host.strip() for host in open(input_file).readlines()] #populate queue with data for host in hosts: queue.put(host)
#wait on the queue until everything has been processed queue.join()
main() #for proxy,host in output: # print proxy,host
print "Elapsed Time: %s" % (time.time() - start)
@Selcuk
Üye

Üyelik Tarihi: 28-04-2017
Yorum Sayısı: 98
Konu Sayısı: 0
Rep Puanı:
0
gecemor teşekkür ederim ilginiz için ve yardımınız için.
Gece kayıt oldum forumunuza gerçekten öğretici konulara denk geldim.
Dün geceden beri forumda bir çok konu okudum python ile ilgili faydalı bilgiler paylaşılmış fakat python diline yeni giriş yaptım bu konuda pek bir bilgim yok forumunuzdan faydalanıp öğreneceğimi umuyorum.
Hoş geldin o zaman, evet kendimizce ve aklımıza geldikçe bir şeyler yapmaya çalıştık, sana da elimizden geldiği kadar python konusunda yardımcı olacağımızdan şüphen olmasın. İyi forumlar...
Üye

Üyelik Tarihi: 28-04-2017
Yorum Sayısı: 98
Konu Sayısı: 0
Rep Puanı:
0
gecemor İlk mesaşınızda belirttiğiniz şu desene göre (\d+\.\d+\.\d+\.\d+).*?(\d{2,5}) proxy toplanacak site listesinden proxy toplamak mümkünmüdür?
Misal pek yapamadım ama
Kod:
import threading
import urllib2
import time
import re
[size=small][font=Monaco, Consolas, Courier, monospace][/font][/size][size=small][font=Monaco, Consolas, Courier, monospace]input_file[/font][/size][size=small][font=Monaco, Consolas, Courier, monospace][/font][/size] = 'proxyUrllist.txt'
ValidIPRegex = '(\d+\.\d+\.\d+\.\d+).*?(\d{2,5})'
maxthreads = 50
print len(open(input_file).readlines()), "adet Url taranacak\n"
time.sleep(1)
with open("BulunanProxyler.txt", "ab") as f:
f.write(proxy_info+"\n")
tabiki de mümkündür, en temel seviyede yaptığımız işlem şu şekilde olacak. Ama belirtmeliyim ki bazı siteler kanak okumaya karşı kendince önlem almış olabilirler veya proxylerin portlarını ayrı bir şekilde listelemiş olabilirler. Kısacası her sitede bu kadar basit bir okuma işlemini kullanamayabilirsin, tabi bunun çözümleri de bulunur ama ilk olarak temelde ne yapıldığını bilmen iyi olacaktır.
PHP Kod:
import urllib2 import re
ValidIPRegex = '(\d+\.\d+\.\d+\.\d+).*?(\d{2,5})'
site = "http://site-yaz.com"
site_kaynagi = urllib2.urlopen(site).read()
proxy_bul = re.findall(ValidIPRegex, site_kaynagi)
print proxy_bul
Üye

Üyelik Tarihi: 28-04-2017
Yorum Sayısı: 98
Konu Sayısı: 0
Rep Puanı:
0
gecemor Ozaman şu şekilde doğrumudur?
Örnek site proxyUrllist.txt alt alta sıralanmış
https://hidemy.name/en/proxy-list
http://www.freeproxylists.net
Kod:
import urllib2
import re
input_file = 'proxyUrllist.txt'
ValidIPRegex = '(\d+\.\d+\.\d+\.\d+).*?(\d{2,5})'
site = print len(open(input_file).readlines()), "adet proxy taranacak\n"
site_kaynagi = urllib2.urlopen(site).read()
proxy_bul = re.findall(ValidIPRegex, site_kaynagi)
for i in proxy_bul:
proxy=i[0]+":"+i[1]
dosya=open("BulunanProxyler.txt","ab")
dosya.write(proxy+"\n")
dosya.close()
print proxy_bul
29-04-2017, Saat: 19:59
(Son Düzenleme: 29-04-2017, Saat: 20:03, Düzenleyen: gecemor.)
şimdi python'da bir takım söz dizilimlerine dikkat etmen gerek, mesela bir değişken tanımladığında o tanımlama içinde print kullanamazsın. Ayrıca kodda siteler için ayrı işlem yapmamışsın, kısaca çok eksiğin var temel konularda. Ben yapmak istediğini şu şekilde düzenledim
PHP Kod:
import urllib2 import re
input_file = 'proxyUrllist.txt'
ValidIPRegex = '(\d+\.\d+\.\d+\.\d+).*?(\d{2,5})'
siteler = open(input_file).readlines()
for site in siteler: try : site_kaynagi = urllib2.urlopen(site).read() proxy_bul = re.findall(ValidIPRegex, site_kaynagi) for i in proxy_bul: proxy=i[0]+":"+i[1] print proxy dosya=open("BulunanProxyler.txt","ab") dosya.write(proxy+"\n") dosya.close() except Exception as hata: print site, "adresinde hata olustu:\n", hata
|