Heim > Backend-Entwicklung > Python-Tutorial > Python-Codebeispiel zum Erstellen eines Webseiten-Traffic-Tools

Python-Codebeispiel zum Erstellen eines Webseiten-Traffic-Tools

Y2J
Freigeben: 2017-05-02 15:47:55
Original
2638 Leute haben es durchsucht

Dieser Artikel stellt Ihnen ein kleines Tool vor, das mit Python erstellt wurde und den Webseitenverkehr glätten kann. Der detaillierte Code ist Ihnen beigefügt.

Vorbereitung

Erforderliche Umgebung:

Python3

Starten

Implementieren Sie zunächst eine einfache Version direkt Der obige Code:

import urllib.request
import urllib.error
#创建get方法
def get(url):
 code=urllib.request.urlopen(url).code
 return code
if __name__ == '__main__':
#设置一些基本属性
 url = "http://shua.jb51.net"
 user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36"
 headers = {'User-Agent':user_agent}
 req = urllib.request.Request(url, headers=headers)
 #记录次数
 i = 1
 while 1: 
   code = get(url)
   print('访问:'+str(code))
   i = i+1
Nach dem Login kopieren

ist einfach und grob und die IP bleibt unverändert. Es ist leicht, es unten zu finden Proxy-Funktion hinzufügen

Fügen Sie den folgenden Code zur get-Methode hinzu:

Ändern Sie die Hauptmethode:

random_proxy = random.choice(proxies)
proxy_support = urllib.request.ProxyHandler({"http":random_proxy})
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)
Nach dem Login kopieren
Das ist fast dasselbe, Wenn die Seite jedoch nicht geöffnet werden kann oder der Agent ausfällt, wird das Programm automatisch beendet. Als nächstes fügen wir die Ausnahmebehandlungsfunktion

if __name__ == '__main__':
 url = "http://shua.jb51.net"
 #添加代理列表,可以自行去百度获取
 proxies = ["124.88.67.22:80","124.88.67.82:80","124.88.67.81:80","124.88.67.31:80","124.88.67.19:80","58.23.16.240:80"]
 user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36"
 headers = {'User-Agent':user_agent}
 req = urllib.request.Request(url, headers=headers)
 i = 1
 while 1:
   #添加参数
   code = get(url,proxies)
   print('第'+str(i)+'次代理访问:'+str(code))
   i = i+1
Nach dem Login kopieren

Ausnahmebehandlung
hinzu

Definieren Sie die E-Mail-Methode mit E-Mail-Erinnerung senden

Dann ändern wir die Hauptmethode:

def mail(txt):
 _user = "你的账号"
 _pwd = "你的密码"
 _to = "收件账号"
 msg = MIMEText(txt, 'plain', 'utf-8')
 #标题
 msg["Subject"] = "代理失效!"
 msg["From"] = _user
 msg["To"] = _to

 try:
   #这里我用的qq邮箱
   s = smtplib.SMTP_SSL("smtp.qq.com", 465)
   s.login(_user, _pwd)
   s.sendmail(_user, _to, msg.as_string())
   s.quit()
   print("Success!")

 except smtplib.SMTPException as e:
   print("Falied,%s" % e)
Nach dem Login kopieren
Fertig!

if __name__ == '__main__':
 url = "http://shua.jb51.net"
 proxies = ["124.88.67.22:80","124.88.67.82:80","124.88.67.81:80","124.88.67.31:80","124.88.67.19:80","58.23.16.240:80"]
 user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36"
 headers = {'User-Agent':user_agent}
 req = urllib.request.Request(url, headers=headers)
 i = 1
 while 1:
   try:
     code = get(url,proxies)
     print('第'+str(i)+'次代理访问:'+str(code))
     i = i+1
   except urllib.error.HTTPError as e:
     print(e.code)
      #添加mail方法
     mail(e.code)
   except urllib.error.URLError as err:
     print(err.reason)
      #添加mail方法
     mail(err.reason)
Nach dem Login kopieren
Fazit


Der Code ist nur 50 Zeilen lang und das Programm kann verbessert werden:

Zum Beispiel: Agentenliste automatisch abrufen, hinzufügen eine Schnittstelle und erweitern Sie sie um Multithreading usw.


Abschließend werde ich die Arbeit eines anderen Freundes mit Ihnen teilen

Wenn es nach dem Testen mehr als zwei Threads gibt, Auf dem Server wird ein 503-Fehler auftreten, also 2 Threads. Genau richtig

Das obige ist der detaillierte Inhalt vonPython-Codebeispiel zum Erstellen eines Webseiten-Traffic-Tools. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage