示例#1
0
 def request(self, method, url, **kwargs):
     """
     使用 self.context.session.request()发起请求
     :param method:
     :param url:
     :param params:
     :return:
     """
     if not kwargs.has_key('timeout'):
         kwargs['timeout'] = Init.timeout
         pass
     response = None
     while response == None:
         try:
             response = self.context.session.request(method, url, **kwargs)
             pass
         except ProxyError:
             logger().error(traceback.format_exc())
             if hasattr(self.context, 'proxy_expire'):
                 delattr(self.context, 'proxy_expire')
         except Exception:
             logger().error('网络错误, {0} {1}\n {2}'.format(
                 method, url, traceback.format_exc()))
             if hasattr(self.context, 'proxy_expire'):
                 delattr(self.context, 'proxy_expire')
         pass
     return response
     pass
示例#2
0
 def execute(self, arguments):
     ra_ti = function.random_time()
     time.sleep(ra_ti)
     logger().info('sleep_time:' + str(ra_ti))
     response = self.context.request(
         'GET', 'https://www.douyu.com/directory/game/wzry')
     tl = response.text
     a = xt.fromstring(tl)
     ul = a.xpath('//ul[@id="live-list-contentbox"]')
     li = ul[0].xpath('li')
     y = 0
     listss = {}
     for x in li:
         img = x.xpath('a/span/img[@class="JS_listthumb"]/@data-original')
         href = x.xpath('a[@class="play-list-link"]/@href')
         title = (x.xpath('a/div/div/h3[@class="ellipsis"]')[0]).text
         types = (x.xpath('a/div/div/span[@class="tag ellipsis"]')[0]).text
         author = (
             x.xpath('a/div/p/span[@class="dy-name ellipsis fl"]')[0]).text
         heat = (x.xpath('a/div/p/span[@class="dy-num fr"]')[0]).text
         listss[y] = {
             'title': title,
             'img': img[0],
             'types': types,
             'author': author,
             'heat': heat,
             'heat_int': str(function.conversion(heat)),
             'href': 'https://www.douyu.com' + str(href[0]),
             'create_time': str(time.time())
         }
         y += 1
         pass
     json_str = json.dumps(listss)
     self.context.redis.set('live', json_str)
     print 'no'
示例#3
0
 def execute(self, arguments):
     # 初始化日志
     app_log_path = sys.path[0] + '/logs/hd/{2}/{0}_{1}.log'.format(
         datetime.now().strftime('%Y-%m-%d_%H-%M-%S'),
         random.randint(100000, 9999999),
         datetime.now().strftime('%Y_%m_%d'))
     self.context.logger = getLogger(app_log_path, True)
     self.context.app_log_path = app_log_path
     hym.core.default_logger = self.context.logger
     # requests初始化
     requests.packages.urllib3.disable_warnings()
     self.context.session = requests.session()
     self.context.session.verify = False
     log_path = sys.path[0] + '/logs/request_log/{2}/{0}_{1}.log'.format(
         time.strftime('%Y-%m-%d_%H-%M-%S_'),
         random.randint(1000000, 9999999),
         datetime.now().strftime('%Y_%m_%d'))
     if not os.path.isdir(os.path.split(log_path)[0]):
         os.makedirs(os.path.split(log_path)[0])
         pass
     logger().info('request log path: {0}'.format(log_path))
     requestLogAdapter = RetryAdapter(self.check_retry,
                                      log_path,
                                      max_retries=5)
     self.context.session.mount('http://', requestLogAdapter)
     self.context.session.mount('https://', requestLogAdapter)
     self.context.session.headers.update({
         '(Request-Line)': 'GET /htm/novel1/27695.htm HTTP/1.1',
         'Accept-Encoding': 'gzip, deflate',
         'User-Agent':
         'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240',
         'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
         'Accept-Language': 'zh-CN',
     })
     self.context.request = self.request
     #初始化redis链接
     #self.context.redis=function.link_redis()
     pass
示例#4
0
 def execute(self, arguments):
     # 初始化日志
     app_log_path = sys.path[0] + '/logs/live/{0}_{1}.log'.format(
         datetime.now().strftime('%Y-%m-%d_%H-%M-%S'),
         random.randint(100000, 9999999))
     self.context.logger = getLogger(app_log_path, True)
     self.context.app_log_path = app_log_path
     hym.core.default_logger = self.context.logger
     # requests初始化
     requests.packages.urllib3.disable_warnings()
     self.context.session = requests.session()
     self.context.session.verify = False
     log_path = sys.path[0] + '/logs/request_log/{0}_{1}.log'.format(
         time.strftime('%Y-%m-%d_%H-%M-%S_'),
         random.randint(1000000, 9999999))
     if not os.path.isdir(os.path.split(log_path)[0]):
         os.makedirs(os.path.split(log_path)[0])
         pass
     logger().info('request log path: {0}'.format(log_path))
     requestLogAdapter = RetryAdapter(self.check_retry,
                                      log_path,
                                      max_retries=5)
     self.context.session.mount('http://', requestLogAdapter)
     self.context.session.mount('https://', requestLogAdapter)
     self.context.session.headers.update({
         'Accept-Encoding':
         'gzip, deflate, br',
         'Accept-Language':
         'zh-CN,zh;q=0.9',
         'User-Agent':
         'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
         'Accept':
         'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'
     })
     self.context.request = self.request
     #初始化redis链接
     self.context.redis = function.link_redis()
     pass
示例#5
0
 def execute(self, arguments):
     if self.context.NoticeList.has_key(
             'qq_pg') and self.context.NoticeList['qq_pg']:
         y = 0
         while self.context.NoticeList['qq_pg'].has_key(y):
             response = self.context.request(
                 'GET', self.context.NoticeList['qq_pg'][y]['href'])
             Article = function.qq_pg_clean_NoticeArticle(
                 response.content, self.context.NoticeList['qq_pg'][y])
             api_client.client.post_yxgg_notice_data(Article)
             logger().info(Article)
             logger().info('qinqinqin')
             y += 1
             pass
         pass
     if self.context.NoticeList.has_key(
             'wy_stzb') and self.context.NoticeList['wy_stzb']:
         ws = 0
         while self.context.NoticeList['wy_stzb'].has_key(ws):
             #print self.context.NoticeList['wy_stzb']
             response = self.context.request(
                 'GET', self.context.NoticeList['wy_stzb'][ws]['href'])
             response.encoding = response.apparent_encoding
             texts = response.text
             Article = function.wy_stzb_clean_NoticeArticle(
                 texts, self.context.NoticeList['wy_stzb'][ws])
             api_client.client.post_yxgg_notice_data(Article)
             logger().info(Article)
             logger().info('qinqinqin')
             ws += 1
             pass
         pass
     if self.context.NoticeList.has_key(
             'qq_pvp') and self.context.NoticeList['qq_pvp']:
         pvp = 0
         while self.context.NoticeList['qq_pvp'].has_key(pvp):
             response = self.context.request(
                 'GET', self.context.NoticeList['qq_pvp'][pvp]['href'])
             Article = function.qq_pvp_clean_NoticeArticle(
                 response.content, self.context.NoticeList['qq_pvp'][pvp])
             api_client.client.post_yxgg_notice_data(Article)
             logger().info(Article)
             logger().info('qinqinqin')
             pvp += 1
             pass
         pass
     if self.context.NoticeList.has_key(
             'qq_gp') and self.context.NoticeList['qq_gp']:
         gp = 0
         while self.context.NoticeList['qq_gp'].has_key(gp):
             response = self.context.request(
                 'GET', self.context.NoticeList['qq_gp'][gp]['json_href'])
             Article = function.qq_gp_clean_NoticeArticle(
                 response.content, self.context.NoticeList['qq_gp'][gp])
             api_client.client.post_yxgg_notice_data(Article)
             logger().info(Article)
             logger().info('qinqinqin')
             gp += 1
             pass
         pass