SYMBOL INDEX (275 symbols across 48 files) FILE: src/api/ping/ping.py class Ping (line 13) | class Ping(WebHandler): method get (line 15) | async def get(self, *args, **kwargs): FILE: src/api/proxy/proxy.py function return_developing (line 18) | def return_developing(): class GetProxyHandler (line 23) | class GetProxyHandler(WebHandler): method get (line 28) | async def get(self, *args, **kwargs): method post (line 54) | async def post(self, *args, **kwargs): method delete (line 80) | async def delete(self, *args, **kwargs): class ReportProxyHandler (line 87) | class ReportProxyHandler(WebHandler): method post (line 89) | async def post(self, *args, **kwargs): FILE: src/api/status/status.py class Status (line 10) | class Status(WebHandler): method get (line 15) | async def get(self, *args, **kwargs): FILE: src/config/__init__.py function _init_config (line 4) | def _init_config(): FILE: src/core/context.py class TornadoContext (line 29) | class TornadoContext(object): method __init__ (line 31) | def __init__(self, setting_module): method start (line 66) | def start(self): method _init_event_loop_policy (line 75) | def _init_event_loop_policy(self): method _get_event_loop (line 78) | def _get_event_loop(self): method _load_settings (line 88) | def _load_settings(self): method _init_logger (line 135) | def _init_logger(self): method _init_uri_routes (line 150) | def _init_uri_routes(self): method _init_db_instance (line 158) | def _init_db_instance(self): method _init_middlewares (line 181) | def _init_middlewares(self): method _init_application (line 206) | def _init_application(self): method _do_heartbeat (line 217) | def _do_heartbeat(self): method _init_crawler_runner (line 225) | def _init_crawler_runner(self): method _db_initial_works (line 231) | def _db_initial_works(self): method _install_twisted (line 235) | def _install_twisted(self): FILE: src/core/crawler.py function init_scrapy_env (line 33) | def init_scrapy_env(): function init_crawler_runner (line 44) | def init_crawler_runner(): function get_keymap (line 74) | def get_keymap(): FILE: src/core/db/initial_works.py function do_initial_works (line 7) | def do_initial_works(): FILE: src/core/db/mongo.py function initMongodb (line 17) | def initMongodb(host='127.0.0.1:27017', class MongoDBBase (line 42) | class MongoDBBase(object): method __init__ (line 46) | def __init__(self): method get_list (line 54) | async def get_list(self, spec={}, fields=None, sort=[], skip=0, limit=... method find_one (line 75) | async def find_one(self, spec={}, fields=None, sort=[]): method count (line 88) | async def count(self, spec={}): method insert (line 98) | async def insert(self, docs_data): method update (line 124) | async def update(self, spec, update_fields, upsert=False, multi=False): method delete (line 149) | async def delete(self, spec): method remove (line 163) | async def remove(self, spec, multi=False): method distinct (line 179) | async def distinct(self, key, spec={}): method find_one_and_update (line 193) | async def find_one_and_update(self, spec, update_fields, upsert=False,... method find_one_and_delete (line 217) | async def find_one_and_delete(self, spec={}, fields=None): method _convert_id_object (line 234) | def _convert_id_object(self, origin): FILE: src/core/db/mysql.py function initMySQL (line 11) | def initMySQL(host='127.0.0.1', port=3306, username='', password='', db=... function exec_cmd (line 36) | async def exec_cmd(sql): FILE: src/core/db/redis.py function get_redis_config (line 11) | def get_redis_config(): function init_aioredis_pool (line 38) | async def init_aioredis_pool(): function init_pyredis_pool (line 46) | def init_pyredis_pool(): class RedisDBBase (line 59) | class RedisDBBase: method exec_cmd (line 63) | async def exec_cmd(self, *args, **kwargs): FILE: src/core/exceptions.py class CustomException (line 26) | class CustomException(Exception): method __init__ (line 31) | def __init__(self, msg=None, code=None, data=None): method __str__ (line 36) | def __str__(self): class ValidationError (line 41) | class ValidationError(CustomException): class ParamError (line 46) | class ParamError(CustomException): class NotAuthenticated (line 51) | class NotAuthenticated(CustomException): class AuthenticationFailed (line 56) | class AuthenticationFailed(CustomException): class NotFound (line 61) | class NotFound(CustomException): class SystemError (line 66) | class SystemError(CustomException): class TimeoutException (line 71) | class TimeoutException(CustomException): FILE: src/core/heartbeat.py class HeartBeat (line 11) | class HeartBeat(object): method __init__ (line 13) | def __init__(self): method start (line 18) | def start(self): method register (line 35) | def register(self, func, *args, **kwargs): function initial_tasks (line 51) | def initial_tasks(): FILE: src/core/middleware.py class Middleware (line 6) | class Middleware: method prepare (line 10) | async def prepare(self, request): method finish (line 16) | async def finish(self, response): FILE: src/core/web.py class WebHandler (line 13) | class WebHandler(RequestHandler): method query_params (line 18) | def query_params(self): method data (line 29) | def data(self): method _to_representation (line 41) | def _to_representation(self, instance): method get_param (line 62) | def get_param(self, key, defaut=None): method get_params (line 73) | def get_params(self, *keys): method get_body (line 86) | def get_body(self, parse_json=True): method do_success (line 104) | def do_success(self, data={}, msg='success'): method do_failed (line 114) | def do_failed(self, code=400, msg='error', data={}): method do_finish (line 125) | def do_finish(self, result): method write_error (line 136) | def write_error(self, status_code, **kwargs): method head (line 148) | async def head(self, *args, **kwargs): method get (line 151) | async def get(self, *args, **kwargs): method post (line 154) | async def post(self, *args, **kwargs): method put (line 157) | async def put(self, *args, **kwargs): method delete (line 160) | async def delete(self, *args, **kwargs): method patch (line 163) | async def patch(self, *args, **kwargs): method options (line 166) | async def options(self, *args, **kwargs): method process (line 169) | async def process(self, func_name, *args, **kwargs): method do_prepare (line 183) | async def do_prepare(self): method do_complete (line 192) | async def do_complete(self): FILE: src/main.py function main (line 17) | def main(): FILE: src/proxy_spider/items.py class Proxy (line 12) | class Proxy(Item): FILE: src/proxy_spider/middlewares.py class CustomRetryMiddleware (line 22) | class CustomRetryMiddleware(RetryMiddleware): method process_response (line 24) | def process_response(self, request, response, spider): class PureRedisMiddleware (line 55) | class PureRedisMiddleware(HttpProxyMiddleware): method __init__ (line 61) | def __init__(self, method fetch_proxy (line 75) | def fetch_proxy(self, scheme): method from_crawler (line 102) | def from_crawler(cls, crawler): method _set_proxy (line 108) | def _set_proxy(self, request, scheme): method process_request (line 121) | def process_request(self, request, spider): class RandomUserAgentMiddleware (line 149) | class RandomUserAgentMiddleware: method __init__ (line 152) | def __init__(self): method spider_opened (line 155) | def spider_opened(self, spider): method process_request (line 159) | def process_request(self, request, spider): class TimerMiddleware (line 165) | class TimerMiddleware: method process_request (line 167) | def process_request(self, request, spider): FILE: src/proxy_spider/pipelines.py class PersistencePipeline (line 15) | class PersistencePipeline: method __init__ (line 16) | def __init__(self): method process_item (line 20) | def process_item(self, item, spider): method delete_existed (line 30) | def delete_existed(self, item, spider): FILE: src/proxy_spider/settings.py function _get_log_config (line 22) | def _get_log_config(): FILE: src/proxy_spider/spiders/__init__.py function get_local_ip (line 26) | def get_local_ip(): class _BaseSpider (line 37) | class _BaseSpider(CrawlSpider): method complete_condition (line 40) | def complete_condition(self): method already_exists (line 46) | def already_exists(self, spec): method get_check_approach (line 55) | def get_check_approach(self, scheme): method build_check_recipient (line 75) | def build_check_recipient(self, ip, port, scheme, method build_check_request (line 116) | def build_check_request(self, item: Proxy): method check_ip (line 143) | def check_ip(self, response): method check_ip_failed (line 172) | def check_ip_failed(self, failure): method parse_httpbin (line 190) | def parse_httpbin(self, response): method parse_ipcheck (line 193) | def parse_ipcheck(self, response): method parse_ipduh (line 196) | def parse_ipduh(self, response): method parse_ipify (line 200) | def parse_ipify(self, response): FILE: src/proxy_spider/spiders/a3464.py class A3464Spider (line 6) | class A3464Spider(_BaseSpider): method parse (line 16) | def parse(self, response): FILE: src/proxy_spider/spiders/checker.py class CheckerSpider (line 7) | class CheckerSpider(_BaseSpider): method start_requests (line 18) | def start_requests(self): FILE: src/proxy_spider/spiders/coderbusy.py class CoderbusySpider (line 9) | class CoderbusySpider(_BaseSpider): method parse_items (line 29) | def parse_items(self, response): FILE: src/proxy_spider/spiders/coolproxy.py class CoolproxySpider (line 11) | class CoolproxySpider(_BaseSpider): method parse_items (line 31) | def parse_items(self, response): FILE: src/proxy_spider/spiders/data5u.py class Data5uSpider (line 5) | class Data5uSpider(_BaseSpider): method parse (line 20) | def parse(self, response): FILE: src/proxy_spider/spiders/ihuan.py class IhuanSpider (line 8) | class IhuanSpider(_BaseSpider): method start_requests (line 12) | def start_requests(self): method parse (line 22) | def parse(self, response): FILE: src/proxy_spider/spiders/ip66.py class Ip66Spider (line 12) | class Ip66Spider(_BaseSpider): method start_requests (line 22) | def start_requests(self): method parse_items (line 40) | def parse_items(self, response): FILE: src/proxy_spider/spiders/ip89.py class Ip89Spider (line 11) | class Ip89Spider(_BaseSpider): method start_requests (line 21) | def start_requests(self): method parse_items (line 39) | def parse_items(self, response): FILE: src/proxy_spider/spiders/kuaidaili.py class KuaidailiSpider (line 9) | class KuaidailiSpider(_BaseSpider): method start_requests (line 13) | def start_requests(self): method parse (line 27) | def parse(self, response): FILE: src/proxy_spider/spiders/mix.py class MixSpider (line 14) | class MixSpider(_BaseSpider): method start_requests (line 21) | def start_requests(self): method parse_iphai (line 40) | def parse_iphai(self, response): method parse_a2u (line 52) | def parse_a2u(self, response): method parse_ip181 (line 62) | def parse_ip181(self, response): FILE: src/proxy_spider/spiders/xicidaili.py class XicidailiSpider (line 8) | class XicidailiSpider(_BaseSpider): method start_requests (line 12) | def start_requests(self): method parse (line 21) | def parse(self, response): FILE: src/proxy_spider/spiders/yundaili.py class YundailiSpider (line 8) | class YundailiSpider(_BaseSpider): method start_requests (line 12) | def start_requests(self): method parse (line 21) | def parse(self, response): FILE: src/proxy_spider/utils.py function build_proxy_url (line 4) | def build_proxy_url(ip, port, scheme, FILE: src/service/proxy/functions.py function get_searchable_spec (line 15) | def get_searchable_spec(spec): function build_key (line 29) | def build_key(item): function build_pattern (line 44) | def build_pattern(spec): function exceed_check_period (line 61) | def exceed_check_period(last_check): function valid_format (line 68) | def valid_format(proxy_item): FILE: src/service/proxy/proxy.py class _ProxyServerBase (line 22) | class _ProxyServerBase: class BlockingProxyServer (line 29) | class BlockingProxyServer(_ProxyServerBase): method __init__ (line 34) | def __init__(self): method get_all_keys (line 39) | def get_all_keys(self): method hgetall_dict (line 42) | def hgetall_dict(self, key): method hmset_dict (line 48) | def hmset_dict(self, key, item): method delete (line 58) | def delete(self, key, reason='Not specified.'): method add_failure (line 62) | def add_failure(self, key): method save_proxy (line 76) | def save_proxy(self, item: dict): method query (line 87) | def query(self, spec, return_keys=False): method get_random_keys (line 104) | def get_random_keys(self, count, spec=None): method keys_by_dict (line 116) | def keys_by_dict(self, spec): class ProxyServer (line 123) | class ProxyServer(_ProxyServerBase): method cli (line 129) | def cli(self): method get_all_status (line 133) | async def get_all_status(self): method get_all_keys (line 154) | async def get_all_keys(self): method add_failure (line 157) | async def add_failure(self, key): method new_proxy (line 173) | async def new_proxy(self, item): method query (line 184) | async def query(self, spec, return_keys=False): method get_random_keys (line 201) | async def get_random_keys(self, count, spec=None): method keys_by_dict (line 214) | async def keys_by_dict(self, spec): FILE: src/service/proxy/serializers.py class ProxySerializer (line 10) | class ProxySerializer: method __init__ (line 16) | def __init__(self, item: dict): method get_value (line 19) | def get_value(self, key): method is_valid (line 25) | def is_valid(self, raise_e=False): method data (line 48) | def data(self): method validated_data (line 52) | def validated_data(self): method key (line 68) | def key(self): method to_representation (line 76) | def to_representation(self): method _validate_indispensibles (line 85) | def _validate_indispensibles(self): method _validate_type (line 91) | def _validate_type(self): method _validate_format (line 95) | def _validate_format(self): FILE: src/service/spider/functions.py function prefix_by_type (line 22) | def prefix_by_type(_type=None): function build_key (line 33) | def build_key(spider_cls, _type): function updated_crawler_settings (line 42) | def updated_crawler_settings(origin_settings, spec: dict): FILE: src/service/spider/spider.py class SpiderServer (line 10) | class SpiderServer: method __init__ (line 11) | def __init__(self): method all_status (line 15) | async def all_status(self, _type=None, with_key=False): method register_status (line 36) | async def register_status(self, key): method unregister_status (line 52) | async def unregister_status(self, st, key, *args, **kw): method callback_unregister_status (line 66) | def callback_unregister_status(self, _, st, key, *args, **kw): FILE: src/service/tasks/spider.py class SpiderTasks (line 14) | class SpiderTasks: method start (line 21) | async def start(self, *args, **kwargs): method execute_task (line 43) | async def execute_task(self, _type): method checker_condition (line 48) | async def checker_condition(self): method seeker_condition (line 55) | async def seeker_condition(self): method get_max_running_rum (line 64) | def get_max_running_rum(self, _type): method get_spiders_to_run (line 73) | async def get_spiders_to_run(self, _type): method start_crawling (line 121) | async def start_crawling(self, key_and_spiders): method deploy_spider (line 135) | async def deploy_spider(self, key, spider): method run_spider (line 154) | def run_spider(self, spider, st, key): method build_crawler (line 167) | def build_crawler(self, spider): FILE: src/utils/collections.py function shuffled_range (line 5) | def shuffled_range(start, stop, step=1): FILE: src/utils/docker.py function check_if_inside_docker (line 6) | def check_if_inside_docker(): FILE: src/utils/http_client.py class AsyncHttpRequests (line 12) | class AsyncHttpRequests(object): method get (line 17) | async def get(cls, url, params=None, headers=None, method post (line 56) | async def post(cls, url, params=None, body=None, headers=None, FILE: src/utils/log.py function initLogger (line 15) | def initLogger(log_level='debug', log_path=None, logfile_name=None): function info (line 43) | def info(*args, **kwargs): function warn (line 48) | def warn(*args, **kwargs): function debug (line 53) | def debug(*args, **kwargs): function error (line 58) | def error(*args, **kwargs): function _log (line 68) | def _log(msg_header, *args, **kwargs): function _log_msg_header (line 91) | def _log_msg_header(*args, **kwargs): FILE: src/utils/routes.py class route (line 10) | class route(object): method __init__ (line 23) | def __init__(self, uri, name=None): method __call__ (line 34) | def __call__(self, _handler): method make_routes (line 54) | def make_routes(cls, dirs): FILE: src/utils/send_email.py class MailSender (line 13) | class MailSender(object): method __init__ (line 15) | def __init__(self, host, username, password, to_emails, subject, conte... method send_mail (line 31) | def send_mail(self): function test (line 58) | def test(): FILE: src/utils/time_ext.py class UTC (line 11) | class UTC(datetime.tzinfo): method utcoffset (line 12) | def utcoffset(self, dt): method dst (line 15) | def dst(self, dt): class LocalTimeZone (line 19) | class LocalTimeZone(datetime.tzinfo): method utcoffset (line 20) | def utcoffset(self, dt): method dst (line 23) | def dst(self, dt): method tzname (line 26) | def tzname(self, dt): function parse_date (line 46) | def parse_date(value): function parse_datetime (line 58) | def parse_datetime(value): function convert_zone (line 91) | def convert_zone(dt: datetime.datetime, tz_to=UTC, tz_default=LocalTimeZ... function get_utc_time (line 102) | def get_utc_time(dt: datetime.datetime = None, tz_default=LocalTimeZone): function get_time_str (line 112) | def get_time_str(dt: datetime.datetime = None, tz_default=LocalTimeZone): function get_date_str (line 124) | def get_date_str(dt: datetime.date = None): function get_cur_timestamp (line 133) | def get_cur_timestamp(): function get_cur_datetime_m (line 140) | def get_cur_datetime_m(): function get_datetime (line 148) | def get_datetime(): function get_date (line 156) | def get_date(fmt='%Y%m%d', delta_day=0): function date_str_to_dt (line 167) | def date_str_to_dt(date_str=None, fmt='%Y%m%d', delta_day=0): function dt_to_date_str (line 182) | def dt_to_date_str(dt=None, fmt='%Y%m%d', delta_day=0): function ts_to_datetime_str (line 196) | def ts_to_datetime_str(ts): function datetime_str_to_ts (line 206) | def datetime_str_to_ts(dt_str, fmt='%Y-%m-%d %H:%M:%S'): function current_timestamp (line 215) | def current_timestamp(_int=True): FILE: src/utils/tools.py function get_uuid1 (line 9) | def get_uuid1(): function get_uuid3 (line 17) | def get_uuid3(str_in): function get_uuid4 (line 26) | def get_uuid4(): function get_uuid5 (line 34) | def get_uuid5(str_in): function parse_yaml (line 43) | def parse_yaml(path): function merge_configure (line 48) | def merge_configure(old, new): function subdict (line 107) | def subdict(base, keys): function str_rot13 (line 112) | def str_rot13(txt): FILE: src/utils/validators.py function _field (line 10) | def _field(data, field, required): function bool_field (line 25) | def bool_field(data, field=None, required=True): function int_field (line 44) | def int_field(data, field=None, required=True): function float_field (line 60) | def float_field(data, field=None, required=True): function string_field (line 76) | def string_field(data, field=None, required=True): function list_field (line 90) | def list_field(data, field=None, required=True): function dict_field (line 114) | def dict_field(data, field=None, required=True): function datetime_field (line 138) | def datetime_field(data, field=None, required=True): function date_field (line 146) | def date_field(data, field=None, required=True):