0%

不需要认证代理的情况下

1
2
3
4
5
6
7
8
9
10
11
12
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('proxy-server=socks5://127.0.0.1:18888')
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get(r"http://httpbin.org/get")
print(driver.page_source)
driver.quit()

不需要认证的代理,在可视化和无头模式下都是可以用上述方式进行处理的

需要认证的代理

网上对于谷歌驱动需要认证代理,给出的方案是使用插件的方式,添加 manifest.jsonbackground.js

参考链接

但是这个方法在 --headless 模式下是无法使用的,于是有了相应的解决方法就是不使用无头模式,而使用虚拟可视的方法,同样起到无头的效果

参考链接

但是上面两个方法要处理起来我认为还是更麻烦了一点,有没有方法可以在无认证的代码下稍加修改达到可以认证的效果呢,下面就介绍这个方案:

我们可以在代码机本地部署一个中转代理,而这个中转代理是能够与目标代理进行授权认证,并转发服务的

1
pip install pproxy

python-proxy

关于这个服务可以查看项目介绍

1
pproxy -l socks5:127.0.0.1:18888 -r socks5://your_host:your_port#your_name:your_password -v

意思就是监听本地 18888 端口,把数据转发到目标代理

这样我们上面的代码就不需要改动完成了认证代理的使用

1
2
# 后台模式启动服务
pproxy -l socks5:127.0.0.1:18888 -r socks5://your_host:your_port#your_name:your_password --daemon

总结

上面的案例使用 socks 协议,其他的 http 协议也是类似的,使用代理的办法有很多,但是我认为这个中转的方法是比较简单好用的

postman 是一款 http 调试客户端,普通的请求非常简单,但是有的时候服务商提供的接口,可能需要加密,动态时间戳,随机字符串等,如果我们在参数中手动填写这些信息,每次都要填写会比较麻烦。

针对上面的问题,postman 预留了一个 pre-script 的功能给我们,在发起请求之前会执行这个脚本,我们可以在这里写 js 动态的生成一些参数,这个预先脚本可以是针对整个 collection,或者 collection 下的某个 directory,也可以具体到某个请求,优先级是由下至上。

阅读全文 »

homestead 开发环境下想安装 8.x 版本的 laravel,使用 composer create-project laravel/laravel laravel --prefer-dist 时发现安装的 laravel 版本居然是 5.4 的,指定版本安装 composer create-project laravel/laravel laravel --prefer-dist "8.*",这时报错说版本不适配。因为 composer 其实也是 php 脚本,执行时会根据当前的 php cli 版本而决定的,查看 php -v 发现我们的 php 版本是 5.6,所以安装的 laravel 也就是比较低版本的。

修改

1
sudo update-alternatives --config php

不建议使用以下方式了

解决这个问题,可以通过把 php 执行命令映射到别的 php 版本上

1
ln -s /usr/bin/php /usr/bin/php8.0

不过这里我们使用另外一个办法,通过脚本把 php 的默认版本设置为 8.0 (其实原理和上面的是一样的,也是通过创建软链接映射文件)

1
sudo update-alternatives --set php /usr/bin/php8.0

查看当前 php 版本

1
php -v

再次执行安装 laravel 的命令,这时安装的也是高版本的 laravel

git bash or linux/mac terminal

1
2
export http_proxy=socks5://127.0.0.1:1080 # export http_proxy=http://127.0.0.1:1087
export https_proxy=socks5://127.0.0.1:1080 # export https_proxy=http://127.0.0.1:1087

通常第一条有效

《西江月·世事短如春梦》

宋 朱敦儒

世事短如春梦,人情薄似秋云。

不须计较苦劳心,万事原来有命。

幸遇三杯酒好,况逢一朵花新。

片时欢笑且相亲,明日阴晴未定。