Просмотр исходного кода

[update] 代理抓取时添加异常捕获

jhao104 8 лет назад
Родитель
Сommit
275288d074
4 измененных файлов с 9 добавлено и 10 удалено
  1. 1 3
      Api/ProxyApi.py
  2. 4 3
      ProxyGetter/getFreeProxy.py
  3. 2 2
      Run/main.py
  4. 2 2
      Schedule/ProxyCheck.py

+ 1 - 3
Api/ProxyApi.py

@@ -20,13 +20,10 @@ sys.path.append('../')
 from flask import Flask, jsonify, request
 from flask import Flask, jsonify, request
 from Util.GetConfig import GetConfig
 from Util.GetConfig import GetConfig
 
 
-
-
 from Manager.ProxyManager import ProxyManager
 from Manager.ProxyManager import ProxyManager
 
 
 app = Flask(__name__)
 app = Flask(__name__)
 
 
-
 api_list = {
 api_list = {
     'get': u'get an usable proxy',
     'get': u'get an usable proxy',
     # 'refresh': u'refresh proxy pool',
     # 'refresh': u'refresh proxy pool',
@@ -78,5 +75,6 @@ def run():
     config = GetConfig()
     config = GetConfig()
     app.run(host=config.host_ip, port=config.host_port)
     app.run(host=config.host_ip, port=config.host_port)
 
 
+
 if __name__ == '__main__':
 if __name__ == '__main__':
     run()
     run()

+ 4 - 3
ProxyGetter/getFreeProxy.py

@@ -65,7 +65,7 @@ class GetFreeProxy(object):
         :return:
         :return:
         """
         """
         url = "http://www.66ip.cn/mo.php?sxb=&tqsl={}&port=&export=&ktip=&sxa=&submit=%CC%E1++%C8%A1&textarea=".format(
         url = "http://www.66ip.cn/mo.php?sxb=&tqsl={}&port=&export=&ktip=&sxa=&submit=%CC%E1++%C8%A1&textarea=".format(
-                proxy_number)
+            proxy_number)
         request = WebRequest()
         request = WebRequest()
         # html = request.get(url).content
         # html = request.get(url).content
         # content为未解码,text为解码后的字符串
         # content为未解码,text为解码后的字符串
@@ -162,6 +162,7 @@ class GetFreeProxy(object):
             for tr in proxy_list[1:]:
             for tr in proxy_list[1:]:
                 yield ':'.join(tr.xpath('./td/text()')[0:2])
                 yield ':'.join(tr.xpath('./td/text()')[0:2])
 
 
+
 if __name__ == '__main__':
 if __name__ == '__main__':
     gg = GetFreeProxy()
     gg = GetFreeProxy()
     # for e in gg.freeProxyFirst():
     # for e in gg.freeProxyFirst():
@@ -171,12 +172,12 @@ if __name__ == '__main__':
     #     print(e)
     #     print(e)
     #
     #
     # for e in gg.freeProxyThird():
     # for e in gg.freeProxyThird():
-        # print(e)
+    # print(e)
 
 
     # for e in gg.freeProxyFourth():
     # for e in gg.freeProxyFourth():
     #     print(e)
     #     print(e)
 
 
-    #for e in gg.freeProxyFifth():
+    # for e in gg.freeProxyFifth():
     #    print(e)
     #    print(e)
 
 
     # for e in gg.freeProxySixth():
     # for e in gg.freeProxySixth():

+ 2 - 2
Run/main.py

@@ -15,7 +15,6 @@ __author__ = 'JHao'
 import sys
 import sys
 from multiprocessing import Process
 from multiprocessing import Process
 
 
-
 sys.path.append('../')
 sys.path.append('../')
 
 
 from Api.ProxyApi import run as ProxyApiRun
 from Api.ProxyApi import run as ProxyApiRun
@@ -38,5 +37,6 @@ def run():
     for p in p_list:
     for p in p_list:
         p.join()
         p.join()
 
 
+
 if __name__ == '__main__':
 if __name__ == '__main__':
-   run()
+    run()

+ 2 - 2
Schedule/ProxyCheck.py

@@ -37,7 +37,7 @@ class ProxyCheck(ProxyManager, Thread):
             proxy_item = self.db.pop()
             proxy_item = self.db.pop()
             while proxy_item:
             while proxy_item:
                 proxy = proxy_item.get('proxy')
                 proxy = proxy_item.get('proxy')
-                counter = proxy_item.get('value')
+                counter = proxy_item.get('value', 1)
                 if validUsefulProxy(proxy):
                 if validUsefulProxy(proxy):
                     # 验证通过计数器加1
                     # 验证通过计数器加1
                     if counter and int(counter) < 1:
                     if counter and int(counter) < 1:
@@ -48,7 +48,7 @@ class ProxyCheck(ProxyManager, Thread):
                 else:
                 else:
                     self.log.info('ProxyCheck: {} validation fail'.format(proxy))
                     self.log.info('ProxyCheck: {} validation fail'.format(proxy))
                     # 验证失败,计数器减1
                     # 验证失败,计数器减1
-                    if counter and int(counter) <= -FAIL_COUNT:
+                    if counter and int(counter) <= FAIL_COUNT:
                         self.log.info('ProxyCheck: {} fail too many, delete!'.format(proxy))
                         self.log.info('ProxyCheck: {} fail too many, delete!'.format(proxy))
                         self.db.delete(proxy)
                         self.db.delete(proxy)
                     else:
                     else: