agoda获取酒店数据

2023-10-26

最近改了改代码,正好解决了一些报错问题,更新出来。个别处会加蜜
数据库以及线程控制

from DBUtils.PooledDB import PooledDB
import requests
import demjson
import time
import random
import json
import pymysql
import datetime
import threading

b = {"user": "root",
     "passwd": "Lohas123",
     "host": "121.40.52.101",
     "db": 'price',
     "port": 3306,
     "charset": 'utf8'
     }
#改了一下-10才能将库里读完。
h = -10
class Agoda(threading.Thread):
    __pool = None
    _instance_lock = threading.Lock()

    def __init__(self):
        threading.Thread.__init__(self)
        self.indata =(datetime.datetime.now()+datetime.timedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')
        self.outdata =(datetime.datetime.now()+datetime.timedelta(days=4)).strftime("%Y-%m-%d %H:%M:%S")
        # 将数据库连接游标初始化
        self.coon = Agoda.getmysqlconn()
        self.cur = self.coon.cursor(cursor=pymysql.cursors.DictCursor)

    # sql连接池
    @staticmethod
    def getmysqlconn():
        if Agoda.__pool is None:
            __pool = PooledDB(creator=pymysql, mincached=3, maxcached=20, host=b["host"], user=b["user"],
                              passwd=b["passwd"], db=b["db"], port=b["port"], charset=b["charset"])
        return __pool.connection()

    # 插入\更新\删除sql\
    def op_insert(self, sql):

        print('op_insert', sql)
        self.cur.execute(sql)
        print("修改成功")
        self.coon.commit()

    # 查询
    def op_select(self, sql):
        print('op_select', sql)
        self.cur.execute(sql)  # 执行sql
        select_res = self.cur.fetchall()  # 返回结果为字典
        # print("查询成功")
        return select_res


    # 释放资源
    def dispose(self):
        self.coon.close()
        self.cur.close()
      
    #动态计算数据库数量
    def count(self):
        table="foreign_city_copy"
        runstatue = "isrunning"
        sql="select count(*) from {0} where {1}=0".format(table,runstatue)
        ress = (list(self.op_select(sql)[0].values())[0]//10+1)*10
        return ress
    
    #线程控制稍微改了下
    def run(self):
        global h
        count=self.count()
        while True:
            if h > count:
                break
            with Agoda._instance_lock:
                h += 10
            if h > count:
                break
            sql = "select id,name,ename,country from foreign_city_co
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

agoda获取酒店数据 的相关文章

随机推荐

  • 最小重量机器设计问题

    相关问题 工作分配问题 设某一机器由n个部件组成 每一种部件都可以从m个不同的供应商处购得 设 wij 是从供应商j 处购得的部件i的重量 cij 是相应的价格 试设计一个回溯算法 给出总价格不超过d的最小重量机器设计 对于给定的机器部件重
  • .net core 并发下的线程安全问题

    抱歉 其实内容并不如题 背景 写测试demo所出现的异常 供大家学习与拍砖 net core webapi项目 做了一个授权的filter 真正的生产项目的话 JWT很棒 单个接口测试没有问题 当用前端在同一个页面调用多个接口的时候 运行服
  • Python语言学习实战-内置函数filter()的使用(附源码和实现效果)

    实现功能 filter 函数是Python的内置函数之一 用于过滤序列中的元素 它接受两个参数 一个是函数 用于判断每个元素是否符合条件 另一个是可迭代对象 包含要过滤的元素 filter 函数返回一个迭代器 其中包含所有符合条件的元素 f
  • Beam:没有模板Haskell的数据库功能!

    作为Haskell Web系列的一部分 我们检查了Persistent和Esqueleto库 这些中的第一个允许您使用特殊语法创建数据库模式 然后 您可以使用Template Haskell生成所有必要的Haskell数据类型和类型的实例
  • R语言 第2章 数据对象与数据读写(2)

    重复序列的创建 rep as factor c yizi1 yinzi2 yinzi3 3 rep 是重复函数 它可以将某一向量重复若干次 使用格式 rep x times 1 length out NA each 1 其中x是预重复的序列
  • win10无法装载iso文件_win10系统打开iso格式文件的四种方法

    许多用户在win10系统中下载一个ISO文件 经常重装系统的小伙伴都知道 iso格式是一种光盘映像的文件格式 Windows10系统自带的虚拟光驱 无需任何软件就可以直接打开ISO文件 如果没有虚拟光驱该怎么打开 接下去分享win10系统打
  • python二元函数图像在线绘制_Python:绘制两个变量的二维函数

    我的功能是 def g R r return np sqrt 2 0 R r r R 1 np sqrt R np sqrt R np sqrt 2 0 r 1 r 1 r 1 0 np sqrt R np sqrt 2 0 1 R np
  • R手册(Tidy+Transform)--缺失处理(naniar and simputation)

    文章目录 naniar 缺失数据摘要 阴影矩阵 可视化缺失值变量分布关系 simputation make imputation simpler for missing data 缺失值是指粗糙数据中由于缺少信息而造成的数据的聚类 分组 删
  • cloudstack GuestNetwork Ingress-Egress rule

    Egress 1 创建 egress 规则 1 向management发出api命令 createEgressFirewallRulecmd 的create 方法 最终在cloud数据库firewall rules表中插一条state Ad
  • 阿里druid-spring-boot-starter 配置,个人整理以及遇到的问题(防止之后找不到)

    简介 什么是Druid Druid是阿里巴巴开源平台上的一个项目 整个项目由数据库连接池 插件框架和SQL解析器组成 该项目主要是为了扩展JDBC的一些限制 可以让程序员实现一些特殊的需求 比如向密钥服务请求凭证 统计SQL信息 SQL性能
  • 服务器上使用screen和linux的基本操作

    临时换源 pip install torch 1 7 1 i https pypi tuna tsinghua edu cn simple some package pip install torch 1 7 1 i http pypi d
  • MATLAB入门到精通(三):常用函数及数学应用

    合集如下 MATLAB入门到精通 一 简介及数据类型 MATLAB入门到精通 二 基本语句及绘图 MATLAB入门到精通 三 常用函数及数学应用 十一 常用函数 11 1 随机数函数 11 1 1 rand 函数 rand 函数用来产生均匀
  • 创建一个React项目实现一个计算器

    使用环境react脚手架 node js create react app 文件名 配置完这些就让我们开始把 count js import React Component from react import store from redu
  • mybatis中的typeAlias

    mybatis 的 xml 文件中需要写类的全限定名 较繁琐 可以配置自动扫描包路径给类配置别名 有两种配置方式 方式一 mybatis config xml 中配置
  • AB32VG1项目之智能晾衣架

    智能晾机架项目 开发过程 前期准备 分离工程 导入工程 安装包 安装最近的rt thread 包 AB32VG1的 SDK包 RISC V GCC工具链 下载 硬件搭建 开发板上的3 3V能否可用的问题 大体的硬件规划 软件设计 控制逻辑设
  • 关于Unrecognized Windows Sockets error: 5: socket write error 错误

    最近有个需求是从A数据库读取数据导入到B数据库 demo的数据量也就几万条 但是遇到了一个非常罕见的问题 后端框架是mybatis plus spring boot 在insertBatch到数据库B时 没有立即报错 而是执行插入了几百条数
  • 小程序通过webView打开H5页面并传参(包含webView业务域名配置)、H5页面实现返回小程序并实现传参

    小程序内嵌webview实现跳转 传参 1 小程序通过webView打开H5页面并传参 2 H5接收小程序传参 H5返回小程序并实现传参 小程序接收H5传参 目录 一 小程序通过webView打开H5页面并传参 1 业务域名 2 在小程序中
  • (转)认识SAP SD销售模式之跨公司销售

    跨公司销售 销售订单的发货工厂对应的公司和销售组织对应的公司不同 比如 9801公司为销售性公司 9901为生产性的公司 当公司9801接到订单后 直接从9901公司发货 如果不通过跨公司销售 需要9801像9901公司下虚拟的采购订单 然
  • win10 下 Linux使用方法笔记

    最近想学习一下比特币源码 官方推荐是在Linux系统下学习 且推荐在win10 下的Linux系统进行编译运行 所以下面将学习过程记录一下 1 参考了这篇文章中的方法 进行安装WSL https www cnblogs com JettTa
  • agoda获取酒店数据

    最近改了改代码 正好解决了一些报错问题 更新出来 个别处会加蜜 数据库以及线程控制 from DBUtils PooledDB import PooledDB import requests import demjson import ti