用curl抓取网站数据,仿造IP、防屏蔽终极强悍解决方式

用curl抓取网站数据,仿造IP、防屏蔽终极强悍解决方式原文链接:http://blog.csdn.net/linglongwunv/article/details/8116359最近在做一些抓取其它网站数据的工作,当然别人不会乖乖免费给你抓数据的,有各

大家好,又见面了,我是你们的朋友全栈君。

 

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

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

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

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

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

 

curl_setopt($ch, CURLOPT_PROXY,"http://111.222.333.4:110");

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

 

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");

啦啦啦,完工~

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154312.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言getchar()的用法_c=getchar()

    c语言getchar()的用法_c=getchar()文章目录getchar()函数定义函数返回值注意区分getchar和scanfgetchar的使用实例getchar()函数定义getchar()-字符输入函数,没有参数,从输入缓冲区里面读取一个字符-「一次只能读取一个字符」EOF(-1)-endoffile文件结束标志-键盘上用ctrl+z实现先查一下文档函数返回值该函数以无符号char强制转换为int的形式返回读取的字符,如果到达文件末尾或发生读取错误,则返回EOF(-1

    2022年10月18日
  • vba sendkeys用法_setcontent

    vba sendkeys用法_setcontent今天打算做个测试项目用emWin做界面,其中TEXT要设置背景色,调用方法为TEXT_SetBkColor(hItem,0x0000FF00);按理说应该有绿色背景色的,在VS调试中也是显示绿色背景色的,但是到单片机中确没有背景色的显示,很无语,研究到最后发现启用了ARGB,那么将最高位透明度设置为0xFF即可,即TEXT_SetBkColor(hItem,0xFF00FF00);下载到单…

    2022年10月10日
  • guzzlehttp

    guzzlehttpguzzlehttp

    2022年4月24日
  • mysql 设置主键命令_MySQL常用命令

    mysql 设置主键命令_MySQL常用命令1、修改MySQL密码方法一:usemysql;updateusersetpassword=PASSWORD(“123456”)whereuser=‘root’;flushprivileges;忘记密码:sed-ri’3dskip-grant-tables’/etc/my.cnfsystemctlrestartmariadbusemysql;updateuse…

    2022年6月20日
  • bat命令详解_bat结束进程命令

    bat命令详解_bat结束进程命令批处理文件中可引用的参数为%0~%9,%0是指批处理文件的本身,也可以说是一个外部命令;%1~%9是批处理参数,也称形参;而替换形参的实参若超过了批处理文件中所规定数值(9个)且想在批处理文件中应用这些实参的话,shift命令可以帮你实现! Shift命令:更改批处理文件中可替换参数的位置 C代码    shift[/n]   n的取值是[0,8],且为整数;[/n]为可选参数,当赋予n

    2022年9月14日
  • 验证码VerifyCode

    验证码VerifyCodeVerifyCode.java:测试:运行后会在指定文件路径下生成一张图片,以及在控制台打印图片上的文本。

    2022年7月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号