如何使用代理IP进行数据抓取,PHP爬虫抓取亚马逊商品数据
2018-03-15 14:38
513 查看
什么是代理?什么情况下会用到代理IP?
代理服务器(Proxy Server),其功能就是代用户去取得网络信息,然后返回给用户。形象的说:它是网络信息的中转站。通过代理IP访问目标站,可以隐藏用户的真实IP。比如你要抓取一个网站数据,该网站有100万条内容,他们做了IP限制,每个IP每小时只能抓1000条,如果单个IP去抓因为受限,需要40天左右才能采集完,如果用了代理IP,不停的切换IP,就可以突破每小时1000条的频率限制,从而提高效率。其他想切换IP或者隐藏身份的场景也会用到代理IP,比如SEO等。代理IP有开放代理也有私密代理,开放代理是全网扫描而来的,不稳定,不适合爬虫,如果自己随便用用还好。用爬虫抓数据,最好使用私密代理。私密代理网上有很多提供商,稳定性参差不齐,现在我们公司使用的是“百变IP”提供的私密代理。我们公司有个项目是抓取亚马逊数据来进行分析销量、评论等,用PHP进行抓取,抓取亚马逊要特别注意header头,否则输出的数据就是空了。还有一种方法,可以用PHP通过shell_exec来调用curl命令来进行抓取。function curl_via_proxy($url) {
$user_agent = 'curl';
$ch = curl_init($url); //创建CURL对象
curl_setopt($ch, CURLOPT_HEADER, 0); //返回头部
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返回信息
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); //连接超时时间
curl_setopt($ch, CURLOPT_TIMEOUT, 5); //读取超时时间
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //对认证证书来源的检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_PROXY, 'proxy.baibianip.com'); //代理服务器地址
curl_setopt($ch, CURLOPT_PROXYPORT, '8000'); //代理服务器端口
curl_setopt($ch, CURLOPT_ENCODING,'gzip');
$headers = array(
'authority:www.amazon.com',
'upgrade-insecure-requests:1',
'user-agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3355.4 Safari/537.36',
'accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding:gzip, deflate, br',
'accept-language:zh-CN,zh;q=0.9,en;q=0.8',
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$res = curl_exec($ch);
$curl_errno = curl_errno($ch);
if ($curl_errno) {
curl_close($ch);
return false;
}
curl_close($ch);
return $res;
}
var_dump(curl_via_proxy('https://www.amazon.com/dp/B01H2S9F6C'));
百变IP官网: https://www.baibianip.com
快速接入教程:https://www.baibianip.com/api/doc.html
相关文章推荐
- php爬虫教程(四)抓取数据并进行处理
- 如何在PHP项目中使用phinx进行数据迁移和建表
- PHP中使用snoopy采集类进行数据抓取
- 使用PHP进行网页数据抓取小结
- 如何使得中文不被 json_encode 不编码成 unicode PHP 浏览:9722 2014年08月14日 使用 php 自带的 json_encode 函数对数据进行编码时,中文都会变成
- php使用curl存取cookie进行登录抓取数据示例
- [置顶] [爬虫]使用python抓取京东全站数据(商品,店铺,分类,评论)
- 如何使用JavaScript和正则表达式进行数据验证
- 如何使用DataBinder.Eval()方法进行数据绑定
- 5.如何使用常用的6种方式对数据进行转换(二)
- 如何使用常用的6种方式对数据进行转换(二)
- php之中使用共享内存进行高速数据更新的一种方案
- 使用PHP的cURL库进行网页抓取
- 如何使用正则表达式进行QQ校友的数据采集
- 4.如何使用常用的6种方式对数据进行转换(一)
- 爬虫如何抓取到asp.net中-dopostback获取新页面的数据
- 如何使用VB调用DTS进行数据的导入、导出
- 如何使用PHP和PEAR进行不同时区的转换
- 如何使用JavaScript和正则表达式进行数据验证
- 如何使用 DataView 进行数据排序和检索