import pymysql
import threading
import datetime
import random
import requests
import json
import re
import time
class DB(object):
"""创建MySQL实例"""
def __init__(self, host=None, username=None, pwd=None, dbname=None):
self.pool = {}
self.host = host
self.username = username
self.pwd = pwd
self.dbname = dbname
def get_instance(self):
name = threading.current_thread().name
if name not in self.pool:
conn = pymysql.connect(self.host, self.username, self.pwd, self.dbname)
self.pool[name] = conn
return self.pool[name]
class Bilibili(object):
"""
拉取服务器bilibili_search第七日数据
根据视频aid号,访问哔哩哔哩,更新七日后的播放量与弹幕数,顺便补充aid, avid与视频类型
"""
def __init__(self):
self.server_db = DB("...", "...", "...", "...")
self.local_db = DB("...", "...", "...", "...")
self.start_index = 0
self.end_index = 0
self.lock = threading.Lock()
self.last7day = str(datetime.date.today() + datetime.timedelta(days=-7)) # 前七天日期字符串
self.UserAgent = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1