数据抓取之反爬虫规则:使用代理和http头信息
来源:互联网 发布:c语言实例100 编辑:程序博客网 时间:2024/06/06 17:04
之前说个数据抓取遇到的一个坎就是验证码,这次来说另外两个。我们知道web系统可以拿到客户请求信息,那么针对客户请求的频率,客户信息都会做限制。如果一个ip上的客户访问过于频繁,或者明显是用程序抓取,肯定是要禁止的。本文针对这两个问题说下解决方法。
其实针对上述两个问题,解决方法已经很成熟了,无非就是买代理和在http请求中加入头信息伪装为浏览器请求。本文说下具体操作
使用代理
- 首先购买代理,这个网上卖代理的很多,自己搜索,而且价格也不贵。
其次就是在程序中使用代理:
HttpClient httpclient = new DefaultHttpClient(); httpclient.getCredentialsProvider().setCredentials( new AuthScope("代理ip", "代理端口"), new UsernamePasswordCredentials("代理用户名","代理密码"));
http请求加入头信息
同样在http请求中加入头信息也是很少代码搞定:
HttpGet httpget = new HttpGet(url); // 加入头信息 httpget.addHeader("Accept", "text/html"); httpget.addHeader("Accept-Charset", "utf-8"); httpget.addHeader("Accept-Encoding", "gzip"); httpget.addHeader("Accept-Language", "zh-CN,zh"); httpget.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22"); HttpResponse response = httpclient.execute(httpget);
post请求同样的方式:
HttpPost httppost = new HttpPost(url); List<NameValuePair> formparams = param; UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, reqEncoding); httppost.setEntity(uefEntity); // 加入头信息 httppost.addHeader("Accept", "text/html"); httppost.addHeader("Accept-Charset", "utf-8"); httppost.addHeader("Accept-Encoding", "gzip"); httppost.addHeader("Accept-Language", "en-US,en"); httppost.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22"); HttpResponse response = httpclient.execute(httppost);
也可一去我的个人站点 查看
或者,欢迎关注俺的微信订阅号,每天一篇小笔记,每天提高一点点:
公众好:enilu123
0 0
- 数据抓取之反爬虫规则:使用代理和http头信息
- 数据抓取之反爬虫规则:验证码识别
- 数据抓取之反爬虫规则:CSRF防御处理及异步请求处理
- scrapy: 使用HTTP代理绕过网站反爬虫机制
- scrapy: 使用HTTP代理绕过网站反爬虫机制
- php爬虫抓取信息及反爬虫相关
- php爬虫抓取信息及反爬虫相关
- php爬虫抓取信息及反爬虫相关
- 网络爬虫/数据抓取,反爬虫(更新版)
- 使用scrapy+IP代理+多线程爬虫对拉钩网在杭州互联网职位信息的抓取
- Python爬虫使用代理proxy抓取网页
- 使用代理抓取网页数据
- 关于loadrunner使用web_add_header添加HTTP信息头(比如Content-Type,token等)和使用web_custom_request()提交json数据
- java爬虫之抓取城市数据
- 分布式爬虫:使用Scrapy抓取数据
- 使用爬虫抓取网站异步加载数据
- 分布式爬虫:使用Scrapy抓取数据
- 【网络爬虫】使用HttpClient4.3.5抓取数据
- marquee语法
- 浏览博客随笔——handler正确使用
- bootstrap中的段落和强调内容
- jquery中attr和prop的区别
- 深度学习---开源框架(Github)
- 数据抓取之反爬虫规则:使用代理和http头信息
- 带进度条的WebView
- hdu计算机学院大学生程序设计竞赛 2015’11 1002 投币洗衣机
- 保护眼睛的开发背景色,你值得拥有
- LeetCode 125 Valid Palindrome
- 有过空白期,可以这样写简历!
- Fragment详解之六——如何监听fragment中的回退事件与怎样保存fragment状态
- 视觉感知特性【2】一些视觉感知因子
- java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind 【 解决方案】