CURL 抓取页面失败

xiachao2008 2012-02-13 03:38:54
CURL 抓取页面失败

但是我抓取网址 www.baidu.com,就可以成功。

我想是因为原网站判读了来路,或者说什么什么……(我猜想的,也不知道还有什么其它原因没有)

是不是要你们常说的伪造一个head 头。或者说什么什么的…………


大侠们,可以给点建义或者说小例子什么的。
...全文
183 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiachao2008 2012-02-14
  • 打赏
  • 举报
回复
用你这个方法测式成功了。打开了,

奇怪了。为啥 用我这个方法就打不开呢、、[Quote=引用 10 楼 liv2005 的回复:]

不用完全一致..
那你不用测试baidu了,测试你要访问的那个url呢?
[/Quote]
Liv2005 2012-02-13
  • 打赏
  • 举报
回复
不用完全一致..
那你不用测试baidu了,测试你要访问的那个url呢?
xiachao2008 2012-02-13
  • 打赏
  • 举报
回复
我返回的是这个,与你那个不一样给。
HTTP/1.1 200 OK
Date: Mon, 13 Feb 2012 09:25:44 GMT
Server: BWS/1.0
Content-Length: 7701
Content-Type: text/html;charset=gb2312
Cache-Control: private
Expires: Mon, 13 Feb 2012 09:25:44 GMT
Set-Cookie: BAIDUID=AB9A6F848A18B081721CC33721A2F56D:FG=1; expires=Mon, 13-Feb-42 09:25:44 GMT; path=/; domain=.baidu.com
P3P: CP=" OTI DSP COR IVA OUR IND COM "
Connection: Keep-Alive





[Quote=引用 7 楼 liv2005 的回复:]

引用 4 楼 xiachao2008 的回复:

你什么返回信息

这个怎么样得到呢???

引用 2 楼 liv2005 的回复:

首先要看看对方给了你什么返回信息...
没有已知条件,就没办法判断对方的方法。


....

好吧,以3L的例子为例
PHP code

﹤?php
// 初始化一个 cURL 对象
$curl = curl_init();

……
[/Quote]
xiachao2008 2012-02-13
  • 打赏
  • 举报
回复
我看看[Quote=引用 7 楼 liv2005 的回复:]

引用 4 楼 xiachao2008 的回复:

你什么返回信息

这个怎么样得到呢???

引用 2 楼 liv2005 的回复:

首先要看看对方给了你什么返回信息...
没有已知条件,就没办法判断对方的方法。


....

好吧,以3L的例子为例
PHP code

﹤?php
// 初始化一个 cURL 对象
$curl = curl_init();

……
[/Quote]
Liv2005 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiachao2008 的回复:]

你什么返回信息

这个怎么样得到呢???

引用 2 楼 liv2005 的回复:

首先要看看对方给了你什么返回信息...
没有已知条件,就没办法判断对方的方法。
[/Quote]

....

好吧,以3L的例子为例

﹤?php
// 初始化一个 cURL 对象
$curl = curl_init();

// 设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, 'http://cocre.com');

// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);

// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

// 运行cURL,请求网页
$data = curl_exec($curl);

// 关闭URL请求
curl_close($curl);

// 显示获得的数据
var_dump($data);


$data中保存的就是对方的返回信息

或者调试可以使用curl的命令行先测试

#获得返回内容
curl "http://www.baidu.com"

#获得返回的header信息
curl "http://www.baidu.com" -I

HTTP/1.1 200 OK
Date: Mon, 13 Feb 2012 08:56:07 GMT
Server: BWS/1.0
Content-Length: 7701
Content-Type: text/html;charset=gb2312
Cache-Control: private
Expires: Mon, 13 Feb 2012 08:56:07 GMT
Set-Cookie: BAIDUID=524A910D97727321E8F96CE1540FBE7B:FG=1; expires=Mon, 13-Feb-42 08:56:07 GMT; path=/; domain=.baidu.com
P3P: CP=" OTI DSP COR IVA OUR IND COM "
Connection: Keep-Alive


连续看了LZ好几个问题,貌似LZ目前缺乏相关的最基础知识...建议先放低学习难度...不要想一口吃成胖子
xiachao2008 2012-02-13
  • 打赏
  • 举报
回复
coder 2012-02-13
  • 打赏
  • 举报
回复
把你的代码贴出来看看?
xiachao2008 2012-02-13
  • 打赏
  • 举报
回复
你什么返回信息

这个怎么样得到呢???

[Quote=引用 2 楼 liv2005 的回复:]

首先要看看对方给了你什么返回信息...
没有已知条件,就没办法判断对方的方法。
[/Quote]
coder 2012-02-13
  • 打赏
  • 举报
回复
http://developer.51cto.com/art/200904/121739.htm
Liv2005 2012-02-13
  • 打赏
  • 举报
回复
首先要看看对方给了你什么返回信息...
没有已知条件,就没办法判断对方的方法。
xiachao2008 2012-02-13
  • 打赏
  • 举报
回复
我也想
Python 爬虫 本项目依赖Python的BeautifulSoup4第三方库,使用本项目需要先安装BeautifulSoup4。 步骤一 安装依赖库: 安装BeautifulSoup4: 1.Debain或Ubuntu可以通过系统软件包管理安装 $sudo apt-get install Python-bs4 2.使用easy_install或者pip安装: $ sudo easy_install beautifulsoup4 或$ sudo pip install beautifulsoup4 easy_install和pip是Python的发行包管理工具,同样需要先安装才能使用,这里介绍easy_install的安装方法: 1.Mac OS X 系统可以在终端执行以下命令: curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python 2.Linux系统可以执行以下命令: wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python 3.Window系统: 下载ez_setup.py并运行 步骤二 运行: 运行sexy.py文件爬取网站一: 1.不带参数运行:直接运行sexy.py,使用默认配置参数。 2.可用参数: -s 或 --startpage :起始扫描页面,默认值为1,从第一页开始扫描 -e 或 --endpage :最后扫描页面,默认值为65589。 -d 或 --dir :相对当前文件,下载图片保存位置,默认为sexy_images文件夹 -m 或 --max :获取页面失败后最大重试次数,默认为3 -n 或 --new :只获取最新更新的图片,强制设置起始扫描页为1,获取完毕后自动退出 例子:Sexy$ ./sexy.py -s 10 -e 12 -d cache -m 3 表示从第10页开始扫描到第12页,图片保存文件夹为cache,获取页面失败最多可以尝试3次。 3.运行期间可以随时按回车键退出程序。 运行atlas.py文件爬取网站二: 1.不带参数运行:直接运行atlas.py,使用默认配置参数,从主页开始爬取。 2.可用参数: -d 或 --dir :相对当前文件,下载图片保存位置,默认为atlas_images文件夹 -m 或 --max :获取页面失败后最大重试次数,默认为3 -v 或 --view :查看当前已知标签和标签id -t 或 --tag :爬取指定标签名的图片,同时提供标签id时,本标签无效 -i 或 --id :爬取指定标签id的图片 -l 或 --last :是否从上次退出的地方继续爬取,默认为false 3.运行过程中可以随时按Ctrl+C退出,退出时如果还有新发现标签没有归类,归类后自动退出。 4.setting文件中为已归类标签和最后抓取位置缓存,请勿删除。 测试环境: python 2.7 测试通过 License Copyright 2015 Jianan - qinxiandiqi@foxmail.com Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧