iOS开发 为app配置代理

iOS开发 为app配置代理,第1张

由于对某款app的租房信息的筛选条件不满意,所以爬取了它的api以便能够根据自己的需求进行筛选。根据自己的初级爬虫经验,为了防止app封禁我的ip,所以准备通过代理服务器去访问。

过程是相当纠结啊,尝试的太多,这里就只放结论了。

笔者使用的 URLSession ,初始化前配置 URLSessionConfiguration 对象的 connectionProxyDictionary 即可。

特别提醒: host 类型为 String , 而 port 类型为 Int .

ps:使用http时,需要添加ATS白名单

注: 两种代理方式貌似不能同时使用。不确定是因为我测试时上一秒代理还好好的,下一秒就挂了。

        一般服务器对于爬虫是不欢迎的。真正的用户操作再快都需要一定的时间,而爬虫访问时间很短,因此相当规模的爬虫对服务器造成的负担就更大。所以服务器会对爬虫做检测,如果被抓到则可能被封掉ip或像本例一样返回其他网站。

        针对检测,我们的做法就是要伪装成真正的用户。以笔者目前的理解有两点:

        1. 修改请求头。通过Charles抓包可以看到一次请求的头部信息,对照修改

        2. 设定访问延时。手速再快你也快不过自动运行的程序吧。

参考链接:

https://blog.csdn.net/c406495762/article/details/60137956

ps: 一个不错的爬虫学习系列

过程中遇到最多的就是1200错误码:无法与服务器建立安全连接。网上大多数意见是服务器SSL版本不够,因为iOS最低要求使用TLSv1.2的版本。对于更低一点的,就需要特别指定版本。( 由于我这里是代理字典https key用错了,才导致的1200。所以只能先在这mark一下 )

以下是网上给出的解决方法:

这是一个测试TLS的控制台命令:

nscurl --ats-diagnostics --verbose https://xxxxxxxxx

这里能自动测试哪种key能通过,随便找个https的网站试一下吧。

附上 connectionProxyDictionary keys 参见 Table 3-7

https://developer.apple.com/library/content/documentation/Networking/Conceptual/SystemConfigFrameworks/SC_UnderstandSchema/SC_UnderstandSchema.html

在主屏幕中按系统设置,进入系统设置屏幕。

在系统设置屏幕中找到并点浏览器设置,进入WAP功能设置屏幕,点代理服务器1(或代理服务器2,代理服务器3),进入相应设置屏幕可以分别设置代理服务器。

分别点各项资料的输入栏,进入相应的数字输入屏幕,输入资料(中国移动网关IP:010.000.000.172端口号9201,接入号码是172),正确输入所有资料后,按确定,回到浏览器设置屏幕,再点数据呼叫信息。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/270484.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-19
下一篇2023-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存