Ejemplo n.º 1
0
def see_url(browser: str, email: str, pw: str):
    log = Log(error_path='error.log',
              debug_path='normal.log',
              json_path='info.log')
    log.set_level(Log.stdout_level)
    # for test
    log.debug('test ' + browser + '_' + email)
    start = time.time()
    crawler = FacebookCrawler(user_name=email,
                              password=pw,
                              log=log,
                              browser=browser)
    crawler.init()
    log.debug('init')
    crawler.login_facebook()
    log.debug('login')
    crawler.set_sleep(1)
    # info_dict = crawler.open_homepage_by_param(name='الزجوي عبدلاه', city='Cairo', country_code='EG')
    # print(info_dict)
    # info_dict = crawler.open_homepage_by_param(name='Angel Gunawan', city='Surabaya', country_code='ID')
    # print(info_dict)
    info_dict = crawler.open_homepage_by_param(name='Arman Ali',
                                               city='Gorakhpur',
                                               country_code='IN')
    print(info_dict)
    # info_dict = crawler.open_homepage_by_param(name='Jose Antonio Lara Gálvez', city='Jerez de la Frontera',
    #                                            country_code='ES')
    # print(info_dict)
    # info_dict = crawler.open_homepage_by_param(name='Elena Iuliana', city='Bucharest', country_code='RO')
    # print(info_dict)
    end = time.time()
    log.debug('time cost:' + str(end - start) + ' s')
Ejemplo n.º 2
0
 def execute(self, sql):
     """
     执行SQL
     :param sql:
     :return:
     """
     try:
         if not self.cur:
             self.connect()
         ret = self.cur.execute(sql)  # 执语句行
         self.conn.commit()
         return ret
     except pymysql.Error as e:
         Log().write_file(str(e))
     return False
Ejemplo n.º 3
0
def browser_param(browser: str, email: str, pw: str):
    log = Log(error_path='error.log',
              debug_path='normal.log',
              json_path='info.log')
    log.set_level(Log.stdout_level)
    # for test
    log.debug('test ' + browser + '_' + email)
    start = time.time()
    crawler = FacebookCrawler(user_name=email,
                              password=pw,
                              log=log,
                              browser=browser)
    crawler.init()
    crawler.login_facebook()
    # crawler.get_browser().save_screenshot('login.png')
    crawler.set_sleep(1)
    user_url = 'https://www.facebook.com/app_scoped_user_id/1758044224504993/'
    user_info = crawler.open_homepage_by_url(user_homepage=user_url)
    log.debug(user_info)
    end = time.time()
    log.debug('time cost:' + str(end - start) + ' s')
Ejemplo n.º 4
0
from tools.log import Log

if __name__ == "__main__":
    #db = MySQL()
    #data = db.find("select * from wp_posts")
    #print(data)
    sql = "INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) \
            VALUES(NULL , 1, '2017-04-09 22:39:35', '2017-04-09 14:39:35', '%s', '%s', '', 'inherit', 'closed', 'closed', '', '', '', '', '2017-04-09 22:39:35', '2017-04-09 14:39:35', '', 206, '', 0, 'revision', '', 0);"

    sql = sql % ("conent", "title")
    print(sql)
    Log().write_file(sql)
    #db.execute(sql)
Ejemplo n.º 5
0
 def __init__(self, case_id):
     self.case_id = case_id
     self.opera_excel = Operation_Excel()
     self.get_data = Get_Data()
     self.log = Log()
     self.row_index = self.opera_excel.get_index_caseId(self.case_id)
Ejemplo n.º 6
0
# encoding: utf-8
__author__ = 'zhanghe'

from tools.log import Log

# 实例化,修改日志文件名称,加载新配置
log_test = Log()
log_test.log_filename = 'log_test.log'
log_test.log_config()
# 测试
log_test.debug('This is debug message')
log_test.info('This is info message')
log_test.warning('This is warning message')

log_test.get_memory_usage()
print log_test.memory_usage
"""
测试结果:
内存使用4.14M
4.14M
"""
Ejemplo n.º 7
0
class Email:
    '''
    邮件类。用来给指定用户发送邮件,可指定多个收件人,可带附件
    '''
    log = Log()

    def __init__(self,
                 server,
                 sender,
                 password,
                 receiver,
                 title,
                 message=None,
                 path=None):
        '''
        初始化Email

        server: smtp服务器,必填
        sender: 发件人,必填
        password: 发件人密码,必填
        receiver: 收件人。多收件人用“;”隔开,必填
        title:邮件标题,必填
        message: 邮件正文,非必填
        path: 附件路径,可传入list(多附件)或str(单附件),非必填
        '''
        self.title = title
        self.message = message
        self.files = path

        self.msg = MIMEMultipart('related')

        self.server = server
        self.sender = sender
        self.receiver = receiver
        self.password = password

    def _attach_file(self, att_file):
        '''将单个文件添加到附件列表中'''
        att = MIMEText(open('%s' % att_file, 'rb').read(), 'palin', 'utf-8')
        att['Content-Type'] = 'application/octet-stream'
        file_name = re.split(r'[\\|/]', att_file)
        att["Content-Disposition"] = 'attachment; filename="%s"' % file_name[-1]
        self.msg.attach(att)
        self.log.info('attach file {}'.format(att_file))

    def send(self):
        self.msg['Subject'] = self.title
        self.msg['From'] = self.sender
        self.msg['To'] = self.receiver

        #邮件正文
        if self.message:
            self.msg.attach(MIMEText(self.message))

        #添加附件,支持多个附件(传入list)
        if self.files:
            if isinstance(self.files, list):
                for f in self.files:
                    self._attach_file(f)

            elif isinstance(self.files, str):
                self._attach_file(self.files)

        #连接服务器并发送
        try:
            smtp_server = smtplib.SMTP(self.server)  #连接服务器
        except Exception as e:
            self.log.exception('发送邮件失败,无法连接到SMTP服务器,检查网络以及SMTP服务器. %s', e)
        else:
            try:
                smtp_server.login(self.sender, self.password)
            except smtplib.SMTPAuthenticationError as e:
                self.log.exception('用户名密码验证失败!%s' % e)
            else:
                smtp_server.sendmail(self.sender, self.receiver.split(';'),
                                     self.msg.as_string())  # 发送邮件
            finally:
                smtp_server.quit()  # 断开连接
                self.log.info('发送邮件"{0}"成功! 收件人:{1}。如果没有收到邮件,请检查垃圾箱,'
                              '同时检查收件人地址是否正确'.format(self.title,
                                                     self.receiver))
Ejemplo n.º 8
0
# coding:utf-8

import os
import smtplib
import time
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from tools.log import Log
import configparser as cparser

proj_path = os.path.dirname(os.path.dirname(__file__))

# 测试报告的路径
reportPath = proj_path + "/report"
logger = Log()

# ======== Reading email_config.ini setting, init vars===========
base_dir = str(os.path.dirname(os.path.dirname(__file__)))
base_dir = base_dir.replace('\\', '/')
file_path = base_dir + "/config/email_config.ini"
cf = cparser.ConfigParser()
cf.read(file_path, encoding="UTF-8")
mail_user = cf.get("emails", "mail_user")
mail_pwd = cf.get("emails", "mail_pwd")
mail_to = cf.get("emails", "mail_to")
subject = cf.get("emails", "subject")
mail_host = cf.get("emails", "mail_host")


class SendMail:
    def __init__(self, receiver=None):
Ejemplo n.º 9
0
        'port': sys.argv[2],
        'user': sys.argv[3],
        'password': sys.argv[4],
        'database': sys.argv[5]
    }

    if len(sys.argv) > 6:
        args['directory'] = sys.argv[6]
    else:
        args['directory'] = DEFAULT_DIRECTORY

    return args


args = parse_args()
log = Log()
sql = MysqlImport(args['host'], args['port'], args['user'], args['password'],
                  args['database'], log)
log.info('Creating schema')
sql.run_script('schema/mysql/drop-tables.sql')
sql.run_script('schema/mysql/create-tables.sql')

log.info('Analyzing files')
parsers = generate_parsers_from_files(args['directory'], log)

if len(parsers) > 0:
    log.info('Found', len(parsers), 'files')
else:
    log.info('No files found.')

log.info('Truncating tables')