linux - Curl 函数无法解析来自 bash 中变量的代理
问题描述
我有一个格式为的代理 txt 文件:
102.129.249.120:3128
102.129.249.120:8080
101.4.136.34:8080
103.228.117.244:8080
etc
我正在尝试创建一个 bash 脚本(例如) curl -x "$IP" google.com
:.
不幸的是,curl 为所有代理提供了不受支持的代理语法。
有任何想法吗?
顺便说一句,我真的怀疑这个问题是否被重复了,因为我尝试了其他所有方法都无济于事。
我的脚本:
Number=$(wc -l < ProxyList.txt)
for ((i=1;i<=$Number;++i)) do
ip=$(head -n ${i} ProxyList.txt | tail -n +${i})
curl -p -x "$ip" 'webpage' -H 'user-agent' -H 'Accept: */*' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Cookie: wpml_referer_url=referer; _icl_current_language=es; PHPSESSID=tpikve1vl4ued06i082vprqdo1' -H 'If-Modified-Since: Mon, 16 May 2016 07:27:13 GMT' -H 'If-None-Match: "3d6-532f08d9d7640-gzip"' -H 'Cache-Control: max-age=0' -m 6
done
我的代理列表的一个小样本:
102.129.249.120:3128
102.129.249.120:8080
101.4.136.34:8080
103.228.117.244:8080
103.253.27.108:80
104.45.188.43:3128
104.250.34.179:80
105.27.238.161:80
104.154.143.77:3128
110.243.20.2:9999
111.68.26.237:8080
106.104.151.142:58198
113.252.95.19:8197
115.231.31.130:80
118.69.50.154:80
118.69.50.154:443
119.81.189.194:80
119.81.189.194:8123
119.81.199.81:8123
119.81.199.83:8123
119.81.199.80:8123
12.139.101.100:80
12.139.101.101:80
119.81.199.85:31288
119.81.199.86:8123
119.81.199.87:8123
12.139.101.102:80
124.156.98.172:443
13.228.91.252:3128
138.197.157.32:3128
138.197.157.32:8080
138.68.240.218:8080
138.68.240.218:3128
138.68.60.8:8080
138.68.60.8:3128
解决方案
您的输入文件在每行末尾都有回车符。
输入文件中的每一行都以.\r\n
而不是\n
.
您可以检查od
:
$ head -1 ProxyList.txt | od -c
0000000 1 0 2 . 1 2 9 . 2 4 9 . 1 2 0 :
0000020 3 1 2 8 \r \n
0000026
所以在你的脚本中,$ip
实际上有一个102.129.249.120:3128\r
.
您可以删除\r
字符,tr
例如:
while read proxy; do
curl -p -x $proxy $webpage
done < <( tr -d '\r' < ProxyList.txt )
推荐阅读
- django - 我想知道django是否可以动态添加html标签,就像javascrip一样
- api - 关于创建自定义文件存储服务的建议
- javascript - 在Javascript中使用带有数字的charAt
- php - 无法在 php 中读取/写入文件
- algorithm - 我需要帮助来创建一个算法以从数字列表中返回可能的数字组列表
- reactjs - 如何从反应中的函数调用另一个文件中的另一个类组件
- sql - 更新查询损坏字符
- angularjs - 通过 $http 服务进行基于 AngularJS 令牌的身份验证
- avro - AVRO,将记录转换为数组
- tensorflow - 如何在 Keras 中实现屏蔽的 softmax 交叉熵损失函数?