PHP 爬虫踩坑实践

诶 最近总是踩坑实践 ... 然后未完待续 .今天接到需求 需要抓 https://coinmarketcap.com 下各交易平台数据.爬虫选型当然是python, but 身为phper 不用 php 写一下我怎么会死心呢!!!前两天找 swoole 客户端的轮子 Saber 很人性化, 官方推荐的果然不错.人性化使用风格, ajax.js/axios.js/requests.py用户福音,

- 阅读全文 -

PHP 大整数 / 科学计数法 转 字符串

json 数据格式 中 大整数解开 会被转换为科学计数法 使用 JSON_BIGINT_AS_STRING json_decode 官方文档json_decode($var, true, '512', JSON_BIGINT_AS_STRING) PHP 科学计数法转字符串<?PHP function ScToNum($num) { $numer = strtoupper($num

- 阅读全文 -

Swoole 4.2 协程踩坑

首先注意 'enable_coroutine' => false, // 是否自动开启协程 默认 true 我当然false 手动 go 调用协程 先踩小坑 go(): Using Xdebug in coroutines is extremely dangerous, please notice that it may lead to coredump! i 写了个接口测试

- 阅读全文 -

PHP CURL方式使用代理访问网站

抓取接口数据 但对方网站有限速规则 , 为了防止被限制 使用curl_setopt ($ch, CURLOPT_URL, $requestUrl); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch,

- 阅读全文 -

Python判断变量/list 字典 元素 是否存在

Python判断变量是否存在方法一:使用try: ... except NameError: ...。try: var except NameError: var_exists = False else: var_exists = True 方法二:使用locals()和globals()两个内置函数。locals() : 基于字典的访问局部变量的方式。键是变量名,值是变量

- 阅读全文 -

Swoole dispatch_func 自定义分配worker 进程踩坑实践

swoole 的分配worker 进程方式有很多 轮询 争抢 空闲 等等.因为业务的需求, 我们的服务需要根据用户uid 分配 worker 进程做到用户操作排队.dispatch_func 自定义分配worker进程方法, 真实让我又爱又恨.好处不多说 满足业务需求, 从此实现用户操作 单进程排队的效果.坑也不少, 第一个踩的坑 空包处理 return -1, 没想到结果非常惨 Error: T

- 阅读全文 -

Redis 测试工具 redis-benchmark

Redis 测试工具 redis-benchmark测试demo 如下redis-benchmark -t zadd,lpush,brpoplpush,rpop -n 100000====== LPUSH ====== 100000 requests completed in 0.62 seconds 50 parallel clients 3 bytes payload kee

- 阅读全文 -