-1

我想设置一个网页来自动使用代理。这是我的脚本:

<?

$url = 'http://www.sciencedirect.com/science/jrnlallbooks/a/fulltext';
$proxy = '200.93.148.72:3128';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
$curl_scraped_page = curl_exec($ch);


echo $curl_scraped_page;

?>

我可以打开网页,标题显示:

HTTP/1.0 200 OK 日期:2012 年 11 月 23 日星期五 18:46:41 GMT 最后修改时间:2012 年 11 月 23 日星期五 18:46:41 GMT 设置 Cookie:MIAMISESSION=86e5ecb0-359b-11e2-b116-00000aab0f6c:3531149201 ; 路径=/; 域=.sciencedirect.com;设置 Cookie:USER_STATE_COOKIE=; 过期=格林威治标准时间 1970 年 1 月 1 日星期四 23:59:59;路径=/; 域=.sciencedirect.com;设置 Cookie:SD_REMOTEACCESS=; 过期=格林威治标准时间 1970 年 1 月 1 日星期四 23:59:59;路径=/; 域=.sciencedirect.com;设置 Cookie:路径=/; 域=.sciencedirect.com;设置 Cookie:TARGET_URL=fcf74dd786744d87fbaaaf8652a764ab4a79b0d3ed681139e9106923760631052596d348948479933da48b3723069bbf09065290c950dc02c1f0d1436659ad 路径=/; 域=.sciencedirect.com;设置 Cookie:路径=/; 域=.sciencedirect.com;内容类型:文本/html 到期时间:星期二,1980 年 1 月 1 日 05:00:00 GMT X-RE-Ref:0 19194695 服务器:www.sciencedirect.com P3P:CP="IDC DSP LAW ADM DEV TAI PSA PSD IVA IVD CON HIS TEL OUR DEL SAM OTR IND OTC" 变化:接受编码,用户代理 X-缓存:来自 alejandria.ufps.edu.co 的 MISS X-缓存查找:来自 alejandria.ufps.edu.co:3128 的命中:1.0 alejandria.ufps.edu.co (squid/3.0.STABLE15) 代理连接:关闭

但是,代理仅适用于此页面。当我单击此页面上的其他链接时,没有加载任何代理。请帮我解决这个问题。如何改进我的脚本?我想要一个整个网站(所有链接)来使用代理。如何设置?

4

1 回答 1

1

您似乎需要使用正则表达式来修改 HTML 代码中的任何链接(例如<a href="...">)以指向您的脚本。然后你必须为 cURL 设置一个参数,所以你会得到正确的页面,所以它看起来像http://YourSite.com/proxy.php?site=http://example.com/smth/foo.php

于 2012-11-23T20:07:41.050 回答