コード例 #1
0
 def __init__(self, crawler):
     super(RandUserAgent, self).__init__()
     self.ua = UserAgent()
     # 从配置文件settings中读取RANDOM_UA_TYPE值,默认为random,可以在settings中自定义
     self.ua_type = crawler.settings.get("RANDOM_UA_TYPE", "random")
     self.conn = RedisClient('cookies', 'tendata')
コード例 #2
0
ファイル: importer.py プロジェクト: gale-force-eight/Python
 def __init__(self, website):
     self.website = website
     self.conn = RedisClient('accounts', website)
コード例 #3
0
ファイル: api.py プロジェクト: wltest443587/ProxyTest2
def get_conn():
    if not hasattr(g,'redis'):
        g.redis = RedisClient()
    return g.redis
コード例 #4
0
ファイル: crawler.py プロジェクト: nanazeven/free_ip_pool
 def __init__(self):
     self.db = RedisClient()
     pass
コード例 #5
0
ファイル: schedule.py プロジェクト: mokecome/spider
"""
    调度模块
"""

# 调度模块的类
import time
import multiprocessing
from db import RedisClient
from getter import proxy_func_list
from verify import verify_thread_pool
from api import app
from config import GETTER_PROXY, VERIFY_PROXY

client = RedisClient()

class Schedule:
    # 1. 调度获取代理模块
    def getter_proxy(self):
        while True:
            for func in proxy_func_list:
                proxies = func()
                for proxy in proxies:
                    print('--代理写入数据库--', proxy)
                    client.add(proxy)
            time.sleep(GETTER_PROXY)  # 每五分钟爬取一次代理进行入库

    # 2. 调度验证代理模块
    def verify_proxy(self):
        while True:
            verify_thread_pool()
            time.sleep(VERIFY_PROXY)
コード例 #6
0
ファイル: manage.py プロジェクト: fishprotect/spider
 def __init__(self):
     self.db = RedisClient()
     self.crawl = Crawl_ip()
     self.test = Test_ip()
コード例 #7
0
#!/usr/bin/env python3
# -*- coding=utf-8 -*-
import json
import re
import time
import random
import requests
from lxml import etree
from fake_useragent import UserAgent
from db import RedisClient

redis = RedisClient()
ua = UserAgent()


class ProxyMetaclass(type):
    def __new__(cls, name, bases, attrs):
        count = 0
        attrs['__CrawlFunc__'] = []
        for k, v in attrs.items():
            if 'crawl_' in k:
                attrs['__CrawlFunc__'].append(k)
                count += 1
        attrs['__CrawlFuncCount__'] = count
        return type.__new__(cls, name, bases, attrs)


class Crawler(object, metaclass=ProxyMetaclass):
    def get_proxies(self, callback):
        proxies = []
        for proxy in eval("self.{}()".format(callback)):
コード例 #8
0
ファイル: api.py プロジェクト: kingking888/cookie_pool-1
def get_conn(website):
    if not hasattr(g, 'redis'):
        g.redis = RedisClient('cookies', website)
    return g.redis
コード例 #9
0
ファイル: tester.py プロジェクト: andy521/ip_pool
 def __init__(self):
     self.redis = RedisClient()
     self.headers = {
         "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
     }
     self.test_url = ""
コード例 #10
0
 def __init__(self, website='tianyancha'):
     """初始化数据库类和cookie爬虫类"""
     self.website = website
     self.redis = RedisClient('accounts', self.website)
     self.crawler = Crawler()
     self.accounts_db = RedisClient('accounts', self.website)
コード例 #11
0
ファイル: importer.py プロジェクト: yilouwangye/proxy
 def __init__(self):
     self.client = RedisClient()
     self.kuaidai = KuaidaiProcuration()
コード例 #12
0
 def __init__(self):
     self.redis = RedisClient()
     self.headers = {
         'User-agent':
         'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36',
     }
コード例 #13
0
ファイル: sync.py プロジェクト: JanMCHEN/website
 def __init__(self):
     self.redis = RedisClient()
     self.pool = ProxyPool.objects.filter(is_exsist=True)
コード例 #14
0
 def __init__(self):
     self.csrf_token_db = RedisClient('Csrf', 'Token')
コード例 #15
0
ファイル: getter.py プロジェクト: guxiaowei/proxies
 def __init__(self):
     """初始化数据库类和代理爬虫类"""
     self.redis = RedisClient()
     self.crawler = Crawler()
コード例 #16
0
from db import RedisClient

conn = RedisClient()


def set(proxy):
    result = conn.add(proxy)
    print(proxy)
    print('录入成功' if result else '录入失败')


def scan():
    print('请输入代理, 输入exit退出读入')
    while True:
        proxy = input()
        if proxy == 'exit':
            break
        set(proxy)


if __name__ == '__main__':
    scan()
コード例 #17
0
def get_db():
    if 'db' not in g:
        g.db = RedisClient()
    return g.db
コード例 #18
0
def get():
    if request.args.get('m') == 'mina998':

        return RedisClient().pop()
    else:
        return '111.111.111.111:111'
コード例 #19
0
 def __init__(self, username, password):
     self.username = username
     self.password = password
     self.db = RedisClient()
     self.request = requests.Session()
     self.request.headers.update(Headers)
コード例 #20
0
def count():
    return '%s' % RedisClient().count()
コード例 #21
0
ファイル: scheduler.py プロジェクト: zack7wong/spiders
 def __init__(self):
     self.download = Download()
     self.db = MysqlClient()
     self.redisClient = RedisClient()
コード例 #22
0
ファイル: api.py プロジェクト: yz18165308829/ProxyPoolManage
def get_proxy():
    r = RedisClient()
    proxy = r.random()
    return proxy
コード例 #23
0
ファイル: crawl.py プロジェクト: persontianshuang/crapy500m
        return self.parse(self.make_req(self.url))


def single(asin):
    data = Bianti(asin).single()
    if data!=None:
        print(data)
        coll.insert(data)
    else:
        print(asin,':可能该商品已经不存在了')
    # time.sleep(random.randint(1,3))

from task import get_task
from db import RedisClient

r = RedisClient()

queue_len = int(r.queue_len)




def download_many(cc_list):
    print('download_many')
    workers = min(20, len(cc_list))
    with futures.ThreadPoolExecutor(workers) as executor:
        executor.map(get_task, cc_list)


download_many([single for x in range(queue_len)])
コード例 #24
0
ファイル: api.py プロジェクト: yz18165308829/ProxyPoolManage
def count():
    r = RedisClient()
    return str(r.count())
コード例 #25
0
ファイル: tester.py プロジェクト: gale-force-eight/Python
 def __init__(self, website='default'):
     self.website = website
     self.cookies_db = RedisClient('cookies', self.website)
     self.accounts_db = RedisClient('accounts', self.website)
コード例 #26
0
ファイル: proxy.py プロジェクト: yilouwangye/proxy
def reids_client():
    client = RedisClient()
    choice = client.random()
    return choice
コード例 #27
0
 def __init__(self):
     self.redis = RedisClient()
     self.crawler = Crawler()
コード例 #28
0
 def __init__(self, website='tianyancha'):
     """初始化数据库管理对象"""
     self.website = website
     self.redis = RedisClient('accounts', self.website)
コード例 #29
0
 def __init__(self):
     self.redis = RedisClient()
コード例 #30
0
 def __init__(self):
     self.rules = rules
     self.redis = RedisClient()
     self.spider_running = True
     self.ctx = None