博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用curl抓取网站数据,仿造IP、防屏蔽终极强悍解决方式
阅读量:6887 次
发布时间:2019-06-27

本文共 761 字,大约阅读时间需要 2 分钟。

最近在做一些抓取其它网站数据的工作,当然别人不会乖乖免费给你抓数据的,有各种防抓取的方法。不过道高一尺,魔高一丈,通过研究都是有漏洞可以钻的。下面的例子都是用PHP写的,不会用PHP来curl的孩纸先学习一下这块再往下看,可以参考这篇文章:

      下面言归正传,先说一种常见的方式,伪造来源IP,这也是好多刷票朋友常用的方法:

1、简单一点的可以在header伪造X-FORWARDED-FOR,并伪造referer,代码如下:

[php] 
 
  1. curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:111.222.333.4', 'CLIENT-IP:111.222.333.4'));  
  2. curl_setopt($ch, CURLOPT_REFERER, "http://www.test.com");  

2、上面的方法大多数能糊弄过去,但也有抓到了真实IP的。就使用代理,麻烦在于你有一个有效的代理ip和端口号,有的还需要用户名密码,代码如下:

 

[php] 
 
  1. curl_setopt($ch, CURLOPT_PROXY, "http://111.222.333.4:110");  

      另外还有一种情况,就是用浏览器可以访问,用curl就是不行,发现对方检查了useragent,如果没有就认为是抓取等非法来源,那么我们就自己在header加上useragent,代码如下:

 

 

[php] 
 
    1. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11");

转载地址:http://xetbl.baihongyu.com/

你可能感兴趣的文章
powerdesigner 遇到的各种问题总结
查看>>
(转)韦东山linux学习笔记——ubuntu 9.10 软件源问题
查看>>
SQL错误
查看>>
还款计算-复式记账
查看>>
C# 利用性能计数器监控网络状态
查看>>
网络对抗技术作业一
查看>>
最短路(Floyd_Warshall) POJ 2240 Arbitrage
查看>>
select2使用
查看>>
POJ1816:Wild Words——题解
查看>>
12.使用default-Action配置统一访问
查看>>
mysql建表---级联删除
查看>>
分布式队列神器 Celery
查看>>
windows 允许其他电脑访问本地mysql数据库
查看>>
.Net进阶系列(21)-跨域请求
查看>>
标准输入的EOF
查看>>
如何使用Git命令将项目从github或者服务器上克隆下来
查看>>
cplusplus.com
查看>>
svg了解一下
查看>>
扑克游戏 模拟赛C组
查看>>
JUnit4 中@AfterClass @BeforeClass @after @before的区别对比
查看>>