首页 > 其他分享 >矿机之家

矿机之家

时间:2023-07-12 16:13:27浏览次数:25  
标签:矿机 pic tree content second tag 之家 print

import hashlib
import random
import re
import time
from lxml import etree
import pymysql
import requests


def strip_tags(string, allowed_tags=''):
    if allowed_tags != '':
        # Get a list of all allowed tag names.
        allowed_tags = allowed_tags.split(',')
        allowed_tags_pattern = ['</?' + allowed_tag + '[^>]*>' for allowed_tag in allowed_tags]
        all_tags = re.findall(r'<[^>]+>', string, re.I)
        not_allowed_tags = []
        tmp = 0
        for tag in all_tags:
            for pattern in allowed_tags_pattern:
                rs = re.match(pattern, tag)
                if rs:
                    tmp += 1
                else:
                    tmp += 0
            if not tmp:
                not_allowed_tags.append(tag)
            tmp = 0
        for not_allowed_tag in not_allowed_tags:
            string = re.sub(re.escape(not_allowed_tag), '', string)
    else:
        # If no allowed tags, remove all.
        string = re.sub(r'<[^>]*?>', '', string)

    return string


# 上传图片到服务器
def get_our_pic(content_url):
    upload_picurl = 'https://www.china-mcc.com/index/grabfile/index.html'
    data = {
        'path': content_url
    }
    html = requests.post(url=upload_picurl, data=data).json()
    our_pic_url = 'https://www.china-mcc.com/' + html['file_url']
    return our_pic_url


dict_category = {'企业分类': '1', '产品分类': '2', '技术分类': '3', '需求分类': '4', '会议分类': '5', '活动分类': '6',
                 '资讯分类': '7', '图库分类': '8', '视频分类': '9', '企业性质': '10', '成熟度': '11', '应用情况': '12',
                 '成果类型': '13', '转换方式': '14', '矿山': '15', '冶金': '16', '材料': '199', '环保': '18',
                 '检测': '19', '其他': '105', '矿山设备': '21', '冶金设备': '22', '材料制备及加工设备': '23',
                 '环境保护设备': '24', '分析检测设备': '25', '矿山技术': '26', '冶金技术': '27',
                 '材料制备及加工技术': '28', '环境保护技术': '29', '分析检测技术': '30', '矿山需求': '31',
                 '冶金需求': '32', '材料制备及加工需求': '33', '环境保护需求': '34', '分析检测需求': '35',
                 '矿山行业': '36', '冶金行业': '37', '材料行业': '38', '环保行业': '39', '检测行业': '40',
                 '其他行业': '41', '线上活动': '42', '线下活动': '43', '技术资讯': '44', '产品资讯': '45',
                 '新闻资讯': '46', '企业宣传': '50', '图说产品': '48', '图说技术': '49', '会议视频': '51',
                 '产品视频': '52', '技术讲解': '53', '专题采访': '54', '应用案例': '55', '生产型': '56', '技术型': '57',
                 '服务型': '58', '实验室': '59', '小试': '60', '中试': '61', '形成产品': '62', '实际应用': '64',
                 '技术转让': '76', '规模化生产': '66', '未转让或应用': '67', '发明专利': '69', '新产品': '70',
                 '新装置': '71', '新材料': '72', '新工艺': '73', '其它': '74', '合作研发': '75', '技术许可': '77',
                 '技术入股': '78', '创业融资': '79', '股权融资': '80', '探矿': '175', '采矿': '176', '选矿': '177',
                 '通用': '178', '火法冶金': '179', '湿法冶金': '180', '电冶金': '181', '真空冶金': '182',
                 '功能材料': '183', '复合材料': '184', '新能源材料': '185', '合金材料': '204', '材料加工': '187',
                 '废水处理': '188', '大气治理': '189', '固/危废处置': '190', '土壤修复': '191', '物理检测': '192',
                 '化学分析': '193', '力学检测': '194', '无损检测': '195', '失效分析': '196', '环境检测': '197',
                 '探矿设备': '106', '采矿设备': '107', '选矿设备': '108', '通用设备': '109', '火法冶金设备': '110',
                 '湿法冶金设备': '111', '电冶金设备': '112', '真空冶金设备': '113', '功能材料设备': '114',
                 '复合材料设备': '115', '新能源材料设备': '116', '合金材料设备': '117', '加工设备': '118',
                 '废水处理设备': '119', '大气治理设备': '120', '固/危废处置设备': '121', '土壤修复设备': '122',
                 '物理检测设备': '123', '化学分析设备': '124', '力学检测设备': '125', '无损检测设备': '126',
                 '失效分析设备': '127', '环境检测设备': '128', '探矿技术': '129', '采矿技术': '130', '选矿技术': '131',
                 '通用技术': '132', '火法冶金技术': '133', '湿法冶金技术': '134', '电冶金技术': '135',
                 '真空冶金技术': '136', '功能材料技术': '137', '复合材料技术': '138', '新能源材料技术': '139',
                 '合金材料技术': '140', '加工技术': '141', '废水处理技术': '142', '大气治理技术': '143',
                 '固/危废处置技术': '144', '土壤修复技术': '145', '物理检测技术': '146', '化学分析技术': '147',
                 '力学检测技术': '148', '无损检测技术': '149', '失效分析技术': '150', '环境检测技术': '151',
                 '探矿需求': '152', '采矿需求': '153', '选矿需求': '154', '通用需求': '155', '火法冶金需求': '156',
                 '湿法冶金需求': '157', '电冶金需求': '158', '真空冶金需求': '159', '功能材料需求': '160',
                 '复合材料需求': '161', '新能源材料需求': '162', '合金材料需求': '163', '加工需求': '164',
                 '废水处理需求': '165', '大气治理需求': '166', '固/危废处置需求': '167', '土壤修复需求': '168',
                 '物理检测需求': '169', '化学分析需求': '170', '力学检测需求': '171', '无损检测需求': '172',
                 '失效分析需求': '173', '环境检测需求': '174', '综合': '198', '矿山材料': '200', '冶金材料': '201',
                 '环保材料': '202', '锂电设备': '203', '其它材料': '205'}

dict_area = {'北京': '32', '天津': '33', '上海': '34', '重庆': '35', '河北': '5', '山西': '6',
             '辽宁': '7',
             '吉林': '73', '黑龙江': '9', '江苏': '10', '浙江': '11', '安徽': '12', '福建': '13',
             '江西': '14',
             '山东': '15', '河南': '16', '湖北': '17', '湖南': '18', '广东': '19', '海南': '20',
             '四川': '21',
             '贵州': '22', '云南': '23', '陕西': '24', '甘肃': '25', '青海': '26', '内蒙': '27',
             '广西': '28',
             '西藏': '29', '宁夏': '30', '新疆': '31', '石家庄': '36', '唐山': '37', '秦皇岛': '38',
             '邯郸': '39',
             '邢台': '40', '保定': '41', '张家口': '42', '承德': '43', '沧州': '44', '廊坊': '45',
             '衡水': '46',
             '太原': '47', '大同': '48', '朔州': '49', '忻州': '50', '阳泉': '51', '吕梁': '52',
             '晋中': '53',
             '长治': '54', '晋城': '55', '临汾': '56', '运城': '57', '沈阳': '58', '大连': '59',
             '鞍山': '60',
             '抚顺': '61', '本溪': '62', '丹东': '63', '锦州': '64', '营口': '65', '阜新': '66',
             '辽阳': '67',
             '盘锦': '68', '铁岭': '69', '朝阳': '70', '葫芦岛': '71', '长春': '72', '四平': '74',
             '辽源': '75',
             '通化': '76', '白山': '77', '松原': '78', '白城': '79', '延边朝鲜族自治州': '80',
             '哈尔滨': '81',
             '齐齐哈尔': '82', '鸡西': '83', '鹤岗': '84', '双鸭山': '85', '大庆': '86',
             '伊春': '87', '佳木斯': '88',
             '七台河': '89', '牡丹江': '90', '黑河': '91', '绥化': '92', '大兴安岭地区': '93',
             '南京': '94',
             '无锡': '95', '徐州': '96', '常州': '97', '苏州': '98', '南通': '99', '连云港': '100',
             '淮安': '101',
             '盐城': '102', '扬州': '103', '镇江': '104', '泰州': '105', '宿迁': '106',
             '杭州': '107', '宁波': '108',
             '温州': '109', '绍兴': '110', '湖州': '111', '嘉兴': '112', '金华': '113',
             '衢州': '114', '台州': '115',
             '丽水': '116', '舟山': '117', '合肥': '118', '芜湖': '119', '蚌埠': '120',
             '淮南': '121', '马鞍山': '122',
             '淮北': '123', '铜陵': '124', '安庆': '125', '黄山': '126', '阜阳': '127',
             '宿州': '128', '滁州': '129',
             '六安': '130', '宣城': '131', '池州': '132', '亳州': '133', '福州': '134',
             '厦门': '135', '漳州': '136',
             '泉州': '137', '三明': '138', '莆田': '139', '南平': '140', '龙岩': '141',
             '宁德': '142', '南昌': '143',
             '九江': '144', '上饶': '145', '抚州': '146', '宜春': '147', '吉安': '148',
             '赣州': '149', '景德镇': '150',
             '萍乡': '151', '新余': '152', '鹰潭': '153', '济南': '154', '青岛': '155',
             '淄博': '156', '枣庄': '157',
             '东营': '158', '烟台': '159', '潍坊': '160', '济宁': '161', '泰安': '162',
             '威海': '163', '日照': '164',
             '滨州': '165', '德州': '166', '聊城': '167', '临沂': '168', '菏泽': '169',
             '郑州': '170', '开封': '171',
             '洛阳': '172', '平顶山': '173', '安阳': '174', '鹤壁': '175', '新乡': '176',
             '焦作': '177', '濮阳': '178',
             '许昌': '179', '漯河': '180', '三门峡': '181', '商丘': '182', '周口': '183',
             '驻马店': '184',
             '南阳': '185', '信阳': '186', '济源': '187', '武汉': '188', '黄石': '189',
             '十堰': '190', '宜昌': '191',
             '襄阳': '192', '鄂州': '193', '荆门': '194', '孝感': '195', '荆州': '196',
             '黄冈': '197', '咸宁': '198',
             '随州': '199', '恩施土家族苗族自治州': '200', '仙桃': '201', '潜江': '202',
             '天门': '203', '长沙': '204',
             '株洲': '205', '湘潭': '206', '衡阳': '207', '邵阳': '208', '岳阳': '209',
             '常德': '210', '张家界': '211',
             '益阳': '212', '娄底': '213', '郴州': '214', '永州': '215', '怀化': '216',
             '湘西土家族苗族自治州': '217',
             '广州': '218', '韶关': '219', '深圳': '220', '珠海': '221', '汕头': '222',
             '佛山': '223', '江门': '224',
             '湛江': '225', '茂名': '226', '肇庆': '227', '惠州': '228', '梅州': '229',
             '汕尾': '230', '河源': '231',
             '阳江': '232', '清远': '233', '东莞': '234', '中山': '235', '潮州': '236',
             '揭阳': '237', '云浮': '238',
             '海口': '239', '三亚': '240', '三沙': '241', '成都': '242', '自贡': '243',
             '攀枝花': '244', '泸州': '245',
             '德阳': '246', '绵阳': '247', '广元': '248', '遂宁': '249', '内江': '250',
             '乐山': '251', '南充': '252',
             '眉山': '253', '宜宾': '254', '广安': '255', '达州': '256', '雅安': '257',
             '巴中': '258', '资阳': '259',
             '阿坝藏族羌族自治州': '260', '甘孜藏族自治州': '261', '凉山彝族自治州': '262',
             '贵阳': '263',
             '遵义': '264', '六盘水': '265', '安顺': '266', '毕节': '267', '铜仁': '268',
             '黔东南苗族侗族自治州': '269',
             '黔南布依族苗族自治州': '270', '黔西南布依族苗族自治州': '271', '昆明': '272',
             '曲靖': '273',
             '玉溪': '274', '昭通': '275', '保山': '276', '丽江': '277', '普洱': '278',
             '临沧': '279',
             '德宏傣族景颇族自治州': '280', '怒江傈僳族自治州': '281', '迪庆藏族自治州': '282',
             '大理白族自治州': '283',
             '楚雄彝族自治州': '284', '红河哈尼族彝族自治州': '285', '文山壮族苗族自治州': '286',
             '西双版纳傣族自治州': '287', '西安': '288', '宝鸡': '289', '咸阳': '290',
             '铜川': '291', '渭南': '292',
             '延安': '293', '榆林': '294', '汉中': '295', '安康': '296', '商洛': '297',
             '兰州': '298', '嘉峪关': '299',
             '金昌': '300', '白银': '301', '天水': '302', '武威': '303', '张掖': '304',
             '平凉': '305', '酒泉': '306',
             '庆阳': '307', '定西': '308', '陇南': '309', '临夏回族自治州': '310',
             '甘南藏族自治州': '311',
             '西宁': '312', '海东': '313', '海北藏族自治州': '314', '黄南藏族自治州': '315',
             '海南藏族自治州': '316',
             '果洛藏族自治州': '317', '玉树藏族自治州': '318', '海西蒙古族藏族自治州': '319',
             '呼和浩特': '320',
             '包头': '321', '乌海': '322', '赤峰': '323', '通辽': '324', '鄂尔多斯': '325',
             '呼伦贝尔': '326',
             '巴彦淖尔': '327', '乌兰察布': '328', '兴安盟': '329', '锡林郭勒盟': '330',
             '阿拉善盟': '331',
             '南宁': '332', '柳州': '333', '桂林': '334', '梧州': '335', '北海': '336',
             '崇左': '337', '来宾': '338',
             '贺州': '339', '玉林': '340', '百色': '341', '河池': '342', '钦州': '343',
             '防城港': '344', '贵港': '345',
             '拉萨市': '346', '日喀则市': '347', '昌都市': '348', '林芝市': '349', '山南市': '350',
             '那曲市': '351',
             '阿里地区': '352', '银川': '353', '石嘴山': '354', '吴忠': '355', '固原': '356',
             '中卫': '357',
             '乌鲁木齐': '358', '克拉玛依': '359', '吐鲁番': '360', '哈密': '361',
             '阿克苏地区': '362',
             '喀什地区': '363', '和田地区': '364', '昌吉回族自治州': '365',
             '博尔塔拉蒙古自治州': '366',
             '巴音郭楞蒙古自治州': '367', '克孜勒苏柯尔克孜自治州': '368',
             '伊犁哈萨克自治州': '369', '塔城地区': '370',
             '阿勒泰地区': '371', '自治区直辖县级行政单位': '372', '东城区': '2153',
             '西城区': '374', '朝阳区': '845',
             '丰台区': '376', '石景山区': '377', '海淀区': '378', '顺义区': '379', '通州区': '1072',
             '大兴区': '381',
             '房山区': '382', '门头沟区': '383', '昌平区': '384', '平谷区': '385', '密云区': '386',
             '怀柔区': '387',
             '延庆区': '388', '和平区': '743', '河东区': '1616', '河西区': '391', '南开区': '392',
             '河北区': '393',
             '红桥区': '394', '滨海新区': '395', '东丽区': '396', '西青区': '397', '津南区': '398',
             '北辰区': '399',
             '武清区': '400', '宝坻区': '401', '宁河区': '402', '静海区': '403', '蓟州区': '404',
             '黄浦区': '405',
             '徐汇区': '406', '长宁区': '407', '静安区': '408', '普陀区': '1210', '虹口区': '410',
             '杨浦区': '411',
             '闵行区': '412', '宝山区': '957', '嘉定区': '414', '浦东新区': '415', '金山区': '416',
             '松江区': '417',
             '青浦区': '418', '奉贤区': '419', '崇明区': '420', '渝中区': '421', '万州区': '422',
             '涪陵区': '423',
             '大渡口区': '424', '江北区': '1137', '沙坪坝区': '426', '九龙坡区': '427',
             '南岸区': '428',
             '北碚区': '429', '綦江区': '430', '大足区': '431', '渝北区': '432', '巴南区': '433',
             '黔江区': '434',
             '长寿区': '435', '江津区': '436', '合川区': '437', '永川区': '438', '南川区': '439',
             '璧山区': '440',
             '铜梁区': '441', '潼南区': '442', '荣昌区': '443', '开州区': '444', '梁平区': '445',
             '武隆区': '446',
             }


# 把唯一值进行MD5加密
def get_md5(parmStr):
    # 1、参数必须是utf8
    # 2、python3所有字符都是unicode形式,已经不存在unicode关键字
    # 3、python3 str 实质上就是unicode
    if isinstance(parmStr, str):
        # 如果是unicode先转utf-8
        parmStr = parmStr.encode("utf-8")
        m = hashlib.md5()
        m.update(parmStr)
        return m.hexdigest()


# 链接mysql数据库
connect = pymysql.Connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    passwd='123456',
    db='zhongye',
    charset='utf8mb4'
)

keyword = '采掘机械'
pages = 1
scope = '采矿设备'
category_id = 107


def get_msg(keyword, scope, category_id, page_header, page_num):
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57',
    }
    for pages in range(page_header, page_num):
        url = f'https://www.kjzj.com/search/page{pages}/?keyword={keyword}&active=2'
        html = requests.get(url=url, headers=headers).content.decode()
        tree = etree.HTML(html)
        # 标题
        title_list = tree.xpath('//a[@class="tit"]//@title')
        # 公司
        company_list = tree.xpath('//div[@class="gs"]//a//@title')
        second_list = tree.xpath('//a[@class="tit"]//@href')
        for num in range(len(second_list)):
            time.sleep(random.randint(3, 10))
            title = title_list[num]
            cursor = connect.cursor()
            sql1 = 'select title from kuangjizhijia'
            connect.ping(reconnect=True)
            cursor.execute(sql1)
            ir_md5_dec = cursor.fetchall()
            # 把需要查询的数据转变为元组
            md5 = tuple([title], )

            if md5 in ir_md5_dec:
                pass
                print('数据已存在')
            else:
                company = company_list[num]
                second_url = 'https:' + second_list[num]
                print(f'详情页链接:{second_url}')
                html_second = requests.get(second_url, headers=headers).content.decode()
                tree_second = etree.HTML(html_second)
                neirong = tree_second.xpath('//div[@class="xqbox"]')
                if len(neirong) == 0:
                    if tree_second.xpath('//div[@class="xq"]//text()') == [] or tree_second.xpath(
                            '//div[@class="xq"]//text()') == ['\r\n              ', '\r\n            ']:
                        print('纯图片,不要')
                        print('\n')
                        continue
                    else:
                        neirong = tree_second.xpath('//div[@class="xq"]')[0]
                        content = ''.join(etree.tostring(neirong, encoding='utf-8').decode())
                else:
                    if tree_second.xpath('//div[@class="xqbox"]//text()') == [] or tree_second.xpath(
                            '//div[@class="xqbox"]//text()') == ['\r\n              ', '\r\n            ']:
                        print('纯图片,不要')
                        print('\n')
                        continue
                    else:
                        neirong = tree_second.xpath('//div[@class="xqbox"]')[0]
                        content = ''.join(etree.tostring(neirong, encoding='utf-8').decode())

                content = re.sub(r'\xa0', "", content)
                content = re.sub(r'&#13;', "", content)
                content = re.sub(r'width', "", content)
                content = re.sub(r'height', "", content)
                content = re.sub(r'style="border:0px;"', "", content)
                content = re.sub(r'a href=', "", content)
                content = re.sub('\s', ' ', content)
                content = re.sub('\ue681', ' ', content)
                content = re.sub('class="lazy"', '', content)
                content = strip_tags(content, allowed_tags='br,img,hr,a').replace(
                    '\u200b', '')
                content_tree = etree.HTML(content)
                print((content))

                # 更换图片的链接
                src_src = content_tree.xpath('//img//@src')
                for src in src_src:
                    if 'http' in src:
                        print(f'替换前的内容图片:{src}')
                        our_pic = get_our_pic(src)
                        print(f'替换后的内容图片:{our_pic}')
                        content = content.replace(src, our_pic)
                    else:
                        print(f'替换前的内容图片:{src}')
                        our_pic = get_our_pic('https:' + src)
                        print(f'替换后的内容图片:{our_pic}')
                        content = content.replace(src, our_pic)
                pic_old = tree_second.xpath('//div[@class="bigbox"]//img//@src')
                if pic_old == []:
                    pic_old = tree_second.xpath('//ul[@class="list"]//li[@class="item "]/img//@src')
                pic_old = 'https:' + pic_old[0]
                print(f'原图片链接:{pic_old}')
                pic = get_our_pic(pic_old)
                print(f'转换后的图片链接:{pic}')
                tag_list = tree_second.xpath('//meta[@name="keywords"]//@content')

                tag_list = (''.join(tag_list).split(',')[:5])
                tags = ''
                for tag in tag_list:
                    tags += tag + ','
                tag = tags[:-1]
                print(f'tag:{tag},{len(tag)}')
                intro = ''.join(tree_second.xpath('//meta[@name="description"]//@content')).replace('\u200b', '')
                intro = re.sub('\s', '', intro)
                intro = re.sub('价格可谈,欢迎咨询!', '', intro)
                hit = random.randint(100, 1000)
                all = tree_second.xpath('//ul[@class="canshu clearfix"]//li//p[2]//text()')
                if all == []:
                    all = tree_second.xpath('//table[@class="table_one"]//tr[2]//th//text()')
                print(f'品牌,型号,地址:{all}')
                # 品牌
                brand = all[0]
                # 型号
                spec = all[1]
                # 地址
                city = ''.join(all[2]).strip()
                print(f'标题:{title}')
                print(f'生产企业:{company}')
                print(f'品牌:{brand}')
                print(f'型号:{spec}')
                print(f'地址:{city}')
                print(f'图片:{pic}')
                print(f'标签:{tag}')
                print(f'简介:{intro}')
                print(f'访问量:{hit}')
                print(f'应用领域:{scope}')
                print(f'应用领域ID:{category_id}')
                b = dict_area.keys()
                city_id = []
                for key in b:
                    value = dict_area[key]

                    if key in city:
                        city_id.append(value)
                city_id = city_id[-1]
                print(f'发货地ID:{city_id}')
                data_list = {
                    'title': title,
                    'company': company,
                    'brand': brand,
                    'spec': spec,
                    'pic': pic,
                    'tag': tag,
                    'intro': intro,
                    'content': content,
                    'hit': hit,
                    'city_id': city_id,
                    'scope': scope,
                    'category_id': category_id,
                    'phone': '暂无'
                }

                sql = f"""insert into kuangjizhijia{str(tuple(data_list.keys())).replace("'", "")} values {str(tuple(data_list.values()))};"""
                cursor.execute(sql)
                connect.ping(reconnect=True)
                # 提交数据库
                connect.commit()
                ir_idd = int(connect.insert_id())
                print('数据库自增id', ir_idd, '数据')

                print("kuangjizhijia表数据存储成功!", )
                print('提交成功')
                print('\n')


if __name__ == '__main__':
    # keyword = '采矿设备'
    # pages = 1
    # scope = '采矿设备'
    # category_id = 107
    # page_header=1
    # page_num=26
    # get_msg(keyword, scope, category_id, page_header, page_num)
    get_msg('采矿设备', '采矿设备', 107, 1, 26)

 

标签:矿机,pic,tree,content,second,tag,之家,print
From: https://www.cnblogs.com/wolvies/p/17547755.html

相关文章

  • 基于springboot+vue的漫画之家管理系统,附源码+数据库+论文+PPT,适合课程设计、毕业设计
    1、项目介绍随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,“漫画之家”系统就是信息时代变革中的产物之一。任何系统都要遵循系统设计......
  • ​任务编排工具在之家业务系统中应用探究
     本文主要介绍在之家广告业务系统中运用任务编排治理工具的场景及其可以解决的问题,讲解任务编排框架的核心要点,以及向大家演示一个任务编排框架的基本结构,让大家对任务编排工具增强业务开发效率,提高研发质量有更深刻的理解。 1.背景我们开始以下面的实际业......
  • 汽车之家Unity前端通用架构升级实践
    背景介绍随着之家3D虚拟化需求的增加,各产品线使用Unity引擎的项目也越来越多,新老项目共存,代码维护成本也随之增加。代码质量参差加之代码规范仍没有完全统一产生高昂学习成本进一步加重了项目维护负担。为应对这些问题,我们决定借助主机厂数科产品线销冠神器VR版本......
  • GIS之家博客迁移说明
    GIS之家博客文章后续新文章发布放在GIS之家微信公众号,这里不在同步更新,感兴趣的伙伴们可以关注一波GIS之家微信公众号简介:关注WebGIS开发方向,享WebGIS入门开发系列技术文章核心内容:arcgisapi3.xforjs开发系列文章arcgisapi4.xforjs开发系列文章cesium开发系列......
  • 数据分析之家用热水器用户行为分析与事件识别
    01-data_explore.py1#-*-coding:utf-8-*-23#代码10-145importpandasaspd6importmatplotlib.pyplotasplt78inputfile='./demo/data/......
  • TiDB数据库在汽车之家的应用与实践
     引言TiDB是PingCAP公司研发的开源分布式关系型数据库,具有兼容MySQL协议,易水平扩展、高可用、强一致、HTAP等特性。目前TiDB已在汽车之家论坛,好友粉丝,智......
  • TiDB数据库在汽车之家的应用与实践
     引言TiDB是PingCAP公司研发的开源分布式关系型数据库,具有兼容MySQL协议,易水平扩展、高可用、强一致、HTAP等特性。目前TiDB已在汽车之家论坛,好友粉丝,智......
  • TiDB数据库在汽车之家的应用与实践
     引言TiDB是PingCAP公司研发的开源分布式关系型数据库,具有兼容MySQL协议,易水平扩展、高可用、强一致、HTAP等特性。目前TiDB已在汽车之家论坛,好友粉丝,智......
  • MGR复制架构+自动化运维平台,汽车之家MySQL高可用建设实践
    前言 MySQL具有开源免费,运维简单,性能好等优点,是在汽车之家使用最多的一种数据库。数据库作为应用的后端存储,承担着数据持久化存储的功能,是应用可以正常对外提......
  • Python爬虫实战,requests+tqdm模块,爬取漫画之家漫画数据(附源码)
    前言今天给大家介绍的是Python爬取漫画数据,在这里给需要的小伙伴们代码,并且给出一点小心得。首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求......