- 博客(29)
- 问答 (1)
- 收藏
- 关注
原创 使用DrissionPage爬虫通过滑块验证码
需要注意的是,严格一些的验证码会检测鼠标速度和轨迹,如果速度完全匀速,轨迹是一条直线是过不了的,所以在这里一个300像素的滑动条我们把前面200 使用鼠标速度0.1,也就是让鼠标稍微快一些,后面100用0.5让鼠标速度慢一些,上下滑动增加一个随机数,模拟人手抖动和速度。今天只写一个,用DrissionPage过滑动验证码。使用该模块的动作链功能去模拟鼠标操作。首先,找到对应的元素的位置。
2024-06-13 17:28:41 2330 2
原创 hive函数技巧整理
select count(*) from (select *,'a' as numfrom a left join b on a.id = b.id1 and a.name = 'a'
2022-06-29 21:17:47 671
原创 python 创建和使用线程池
众所周知,python3多线程有threading,很好的支持了多线程,那么问题来了,为什么还需要线程池呢,其实很好回答,如果你要爬取网站有八百页,每页设置一个线程,难道能开启八百个么,光切换的时间也很高了吧。这时候就需要用到线程池,可以设置一个20的线程池,同时只有20个县城在运行,剩下的排队。直接上讲解线程池模块在threading中是没有线程池相关功能的,想要运行线程池需要自己重写,很明显向我这么懒不可能重写,而且自己编写线程池很难写的比较完美,还需要考虑复杂情况下的线程同步,很容易发生死锁。所以
2022-03-30 17:05:32 5636
原创 pyflink datastream 定时器timer详解
代码import datetimefrom pyflink.common import Row, WatermarkStrategyfrom pyflink.common.typeinfo import Typesfrom pyflink.common.watermark_strategy import TimestampAssignerfrom pyflink.datastream import StreamExecutionEnvironmentfrom pyflink.datastrea
2022-03-25 19:10:51 1583 1
原创 pyflink datastream状态(state)详解
先上代码#!/usr/bin/env python# -*- coding: UTF-8 -*-"""@Project :data-integration@File :pyflink_datastream_state.py@Effect :@Author :duanzebing@Date :2022/3/24 2:10 下午-----------------------------------------updatedate author effe
2022-03-25 17:12:07 1174
原创 pyspark从hive导出数据到clickhouse
需求从hive导出数据导clickhouse 大概有两百个字段,两千多万数据,30G左右实现采用pyspark导入,先上代码#_*_ coding=UTF-8 _*_import osimport sysfrom pyspark.sql import SparkSessiondef sparksession_read_hive(): # .master("local[*]") spark = SparkSession.builder.appName('bi_pharaoh_mk
2022-03-16 17:54:58 5362
原创 pandas大数据量rank函数nan无数据 以及 SettingWithCopyWarning告警问题解决
rank函数问题刚一开始是这么写的df_init_['序号'] = df_init_.更新时间.rank(axis=0, method='max', na_option='bottom') # 按照支付时间排序,结果发现自己造的十几条数据没有任何问题,也能按照预期排序,但一放进生产上,‘序号’这一列就全部都是nan,如图注意看最后一列,也就是‘序号’列,都是nan值,百思不得其解,后来在官网上找到这么几句话这里说的很简单,推荐使用df.loc[]这种方式,不推荐使用df[columns.
2022-03-07 16:46:50 2918
原创 pyflinkf初试:table API与 datastream API
tableAPI没啥好说的,就是flinksqldatastreamAPI重点的有几个算子:map:对数据进行函数操作,map传入一个方法,方法入参为整个数据流,但在方法内部以列表的形式处理filter:该算子将按照条件对输入数据集进行筛选操作,将符合条件的数据集输出最重要的就是map,因为map方法能做到一些flinksql做不到的事情:例如:要判断数据大于100,则则发送消息,很显然,在sql里无法判断也无法发送。#!/usr/bin/env python# -*- coding: UTF
2022-02-11 15:49:49 927
原创 hive 炸裂函数的使用
hive中,炸裂函数有两个explode 和posexplode都是可以把数组类型或map类型的字段拆分成多行,属于udtf函数。也可以配合split函数使用。lateral view侧写函数只要是想查询除exlpode之外的字段就要使用侧写函数lateral view;posexplode 是在explode 的基础上多生成一列索引列,索引从0开始,用法如下:select dept_id,name,idx,colfrom sys_deptlateral view posexplode(s
2022-01-12 11:38:30 5628
原创 sqoop从hive导入orc格式数据到mysql
首先上命令,因为我是在python中执行的,所以得以命令行的形式传递到调度:import subprocess as commandscommand = 'sqoop export ' \ "--connect 'jdbc:mysql://{host}/{db}?characterEncoding=utf8&autoReconnect=true' " \ '--username {user} ' \ '--pa
2021-12-15 19:53:02 3152
原创 python操作邮箱发送邮件和接收邮件
首先,用到的模块import loggingimport tracebackfrom email.mime.application import MIMEApplicationimport osimport smtplibfrom email.mime.multipart import MIMEMultipartfrom email.utils import formataddrfrom email.mime.text import MIMETextfrom poplib import P
2021-11-18 16:45:19 1940
原创 python主线程捕获子线程异常
import queueimport threadingimport sysdef thread_text(q, i): try: time.sleep(i) raise Exception('子线程异常') except: q.put(sys.exc_info()) # time.sleep(1)if __name__ =='__main__': q = queue.Queue() t = threading.
2021-10-23 15:06:08 5682 1
原创 python读取es数据库数据并导入hive
最近公司需要从es数据库导入到数仓,记录一下遇到的坑。还是蛮多的。首先是用到的库import csvimport threadingimport timeimport loggingimport tracebackfrom datetime import datetime, timedeltaimport pandas as pdfrom elasticsearch import Elasticsearchfrom hdfs.client import InsecureClientfr
2021-10-20 22:56:19 1558
原创 python使用openpyxl操作excel
# 获取所有sheet页wb.sheetnames# 根据名字获取sheetwb['name']# 创建sheetwb.create_sheet(title='name',index = 1)设置边框/字体/对齐方式/背景from openpyxl.styles import Border, Side, Alignment, Font, Color, PatternFillfrom openpyxl.utils import get_column_letter, column_index
2021-09-13 17:43:11 358
原创 pandas读取多层嵌套json
与第三方API接口对接的时候,是经常会遇到多层嵌套的json的,而我们需要的数据可能仅仅是某几个,或者是需要转换成二维表用来存入数据库。通常我都是用遍历来一遍一遍的for循环获取,但这样效率差劲不说,代码还显得特别low,今天安利一个非常快捷的工具给大家---pd.json_normalize。 首先导入相关库 import pandas as pdfrom pandas.io.json import json_normalize设定一个jsondf = { "error"
2021-08-19 15:34:06 6310 1
空空如也
openpyxl删除合并单元格所在列
2021-06-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人