|
|
@@ -13,6 +13,19 @@
|
|
|
"""
|
|
|
import requests
|
|
|
|
|
|
+from Util.LogHandler import LogHandler
|
|
|
+
|
|
|
+logger = LogHandler(__name__)
|
|
|
+
|
|
|
+
|
|
|
+def getHTMLText(url, headers = {'user':'Mozilla/5.0'}):
|
|
|
+ try:
|
|
|
+ response = requests.get(url, headers = headers, timeout=10)
|
|
|
+ response.raise_for_status()
|
|
|
+ response.encoding = response.apparent_encoding
|
|
|
+ return response.text
|
|
|
+ except:
|
|
|
+ return response.status_code
|
|
|
|
|
|
# noinspection PyPep8Naming
|
|
|
def robustCrawl(func):
|
|
|
@@ -20,8 +33,8 @@ def robustCrawl(func):
|
|
|
try:
|
|
|
return func(*args, **kwargs)
|
|
|
except Exception as e:
|
|
|
- print(u"sorry, 抓取出错。错误原因:")
|
|
|
- print(e)
|
|
|
+ logger.info(u"sorry, 抓取出错。错误原因:")
|
|
|
+ logger.info(e)
|
|
|
|
|
|
return decorate
|
|
|
|
|
|
@@ -54,6 +67,7 @@ def getHtmlTree(url, **kwargs):
|
|
|
'Accept-Encoding': 'gzip, deflate, sdch',
|
|
|
'Accept-Language': 'zh-CN,zh;q=0.8',
|
|
|
}
|
|
|
+ #取代理服务器用代理服务器访问
|
|
|
html = requests.get(url=url, headers=header, timeout=30).content
|
|
|
return etree.HTML(html)
|
|
|
|
|
|
@@ -70,7 +84,8 @@ def validUsefulProxy(proxy):
|
|
|
# 超过30秒的代理就不要了
|
|
|
r = requests.get('https://www.baidu.com/', proxies=proxies, timeout=30, verify=False)
|
|
|
if r.status_code == 200:
|
|
|
+ logger.debug('%s is ok' % proxy)
|
|
|
return True
|
|
|
except Exception as e:
|
|
|
- print(e)
|
|
|
+ logger.info(e)
|
|
|
return False
|