2020
10-10
10-10
python 调用API接口 获取和解析 Json数据
任务背景:调用API接口数据,抽取我们所需类型的数据,并写入指定mysql数据库。先从宏观上看这个任务,并对任务进行分解:step1:需要学习python下的通过url读取数据的方式;step2:数据解析,也是核心部分,数据格式从python角度去理解,是字典?列表?还是各种嵌套?step3:连接mysql数据库,将数据写入。从功能上看,该数据获取程序可以分为3个方法,即step1对应方法request_data(),step2对应方法parse_data(),step3对应data_...
继续阅读 >
一、为什么要搭建爬虫代理池在众多的网站防爬措施中,有一种是根据ip的访问频率进行限制,即在某一时间段内,当某个ip的访问次数达到一定的阀值时,该ip就会被拉黑、在一段时间内禁止访问。应对的方法有两种:1.降低爬虫的爬取频率,避免IP被限制访问,缺点显而易见:会大大降低爬取的效率。2.搭建一个IP代理池,使用不同的IP轮流进行爬取。二、搭建思路1、从代理网站(如:西刺代理、快代理、云代理、无忧代理)爬取代理IP;2、验...
一、同步概念同步就是协同步调,按预定的先后次序进行运行。如:你说完,我再说。"同"字从字面上容易理解为一起动作。其实不是,在这里,"同"字应是指协同、协助、互相配合。线程同步,可理解为线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B执行,再将结果给A;A再继续操作。之前我们遇到过,如果多个线程共同对某个数据修改,则可能出现不可预料的结果,为了保证数据的正确性,需要对多个线程...
日志记录,监控,便于定位bug进行二次封装importosimportloggingfromscripts.handle_yamlimportdo_yamlfromscripts.handle_pathimportLOG_PATHclassHandleLog:def__init__(self,name=None):ifnameisNone:self.my_logger=logging.getLogger("testcase")else:self.my_logger=logging.getLogger(name)self.my_logger.setLevel(do_yaml.get_data("log","logger_level"))console_hand...
今天学到Python有一个名为random的内置模块,可用于生成随机数,这个好玩~可以用来做为上课随机点名的程序了哈哈。。defmain_cor():importrandomi=random.randrange(0,29)withopen('roll_call.txt',encoding='utf-8')asfile_obj:contents=file_obj.read()stuff=contents.split('')s=stuff[i]str=s.encode('gbk')print(str.decode('gbk'))roll_call.txt里装有全班30位同学...
配置文件是一种计算机文件,可以为一些计算机程序配置参数和初始设置,在内容形式上是一个一个键值对的记录。testcase.yaml文件:excel:filename:"testcase.xlsx"将yaml库做二次封装:importyamlclassHandleYaml:def__init__(self,filename=None):iffilenameisNone:self.filename='testcase.yaml'else:self.filename=filenamewithopen(filename,encoding="utf-8")asfile:#用上下文管...