GVKun编程网logo

如何解决百度spider无法抓取的问题?(如何解决百度spider无法抓取的问题)

29

如果您对如何解决百度spider无法抓取的问题?感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于如何解决百度spider无法抓取的问题?的详细内容,我们还将为您解答如何解决百

如果您对如何解决百度spider无法抓取的问题?感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于如何解决百度spider无法抓取的问题?的详细内容,我们还将为您解答如何解决百度spider无法抓取的问题的相关问题,并且为您提供关于.net 解决spider多次和重复抓取的方案、Baiduspider无法正常抓取、CURL抓取的网页中,通过相对路径引用了其他页面,如何解决cookie问题?、Fiddler无法抓到https的解决方法的有价值信息。

本文目录一览:

如何解决百度spider无法抓取的问题?(如何解决百度spider无法抓取的问题)

如何解决百度spider无法抓取的问题?(如何解决百度spider无法抓取的问题)

Shanks 提问于 1年 之前

zac您好,网站能够正常访问,但是无法被百度蜘蛛抓取,做百度推广创意审核老是被拒,显示落地页无法访问,求支持,谢谢!

1 个回答

Zac 管理员 回答于 1年 之前

从描述和抓图看,基本可以肯定是服务器设置技术问题。这种问题作为用户访问网站是看不出源头的,只能技术人员仔细查服务器设置和网站程序。

比如,检查服务器或程序的什么地方是否屏蔽了百度蜘蛛IP或用户代理?

检查服务器原始日志,看看报错到底是什么?是4XX还是5XX?还是压根儿请求被拒绝?百度资源平台抓取诊断部分显示的是什么报错?

网站程序对用户和搜索引擎蜘蛛是否做不同处理?为什么要做不同处理?我访问网站时是被转向到另一个域名的,但从抓图看,百度蜘蛛并没有检测到转向,所以大概率服务器端针对不同访问设备做了不同处理,做了什么不同处理,只有程序员才能查看了。

.net 解决spider多次和重复抓取的方案

.net 解决spider多次和重复抓取的方案

原因:

早期由于搜索引擎蜘蛛的不完善,蜘蛛在爬行动态的url的时候很容易由于网站程序的不合理等原因造成蜘蛛迷路死循环。

所以蜘蛛为了避免之前现象就不读取动态的url,特别是带?的url

解决方案:

1):配置路由

复制代码 代码如下:

routes.MapRoute("RentofficeList",
               "rentofficelist/{AredId}-{PriceId}-{AcreageId}-{SortId}-{SortNum}.html",
               new { controller = "Home", action = "RentOfficeList" },
               new[] { "Mobile.Controllers" });

第一个参数是路由名称
第二个参数是路由的Url模式,参数之间用{}-{}方式分隔
第三个参数是一个包含默认路由的对象
第四个参数是应用程序的一组命名空间

2):设置连接

<a href="@Url.Action("RentofficeList",new RouteValueDictionary { { "AredId",0},{"PriceId",0},{"AcreageId",0},{"SortId",0},{"SortNum",0}})">默认排序</a>

对照上面的Url模式,依次写入参数赋值
3):获取参数

复制代码 代码如下:

int areaId = GetRouteInt("AredId");//获取参数
/// <summary>
/// 获得路由中的值
/// </summary>
/// <param name="key">键</param>
/// <param name="defaultValue">默认值</param>
/// <returns></returns>
protected int GetRouteInt(string key, int defaultValue)
{
return Convert.ToInt32(RouteData.Values[key], defaultValue);
}
/// <summary>
/// 获得路由中的值
/// </summary>
/// <param name="key">键</param>
/// <returns></returns>
protected int GetRouteInt(string key)
{
return GetRouteInt(key, 0);
}

根据上面3个步骤操作,显示的url地址为:

http://localhost:3841/rentofficelist/3-0-0-0-0.html
这样就可以避免静态页面上使用动态参数,显示的页面都为静态页面

您可能感兴趣的文章:
  • javascript SpiderMonkey中的函数序列化如何进行

Baiduspider无法正常抓取

Baiduspider无法正常抓取

安小雨 提问于 3年 之前

Baiduspider无法正常抓取,服务器错误:爬虫发起抓取,httpcode返回码是5XX

1 个回答

Zac 管理员 回答于 3年 之前

这个貌似没什么好回答的。

500或5XX错误就是服务器错误,检查服务器,问工程师、程序员啊,为什么会返回5XX错误。这个和搜索引擎算法、和SEO都没有别的关系了,完全是服务器问题。

CURL抓取的网页中,通过相对路径引用了其他页面,如何解决cookie问题?

CURL抓取的网页中,通过相对路径引用了其他页面,如何解决cookie问题?

curl 相对路径 cookie

例如,用curl抓取页面A,页面A通过相对路径引用了页面B,页面B有Set-Cookie的头部,而页面A没有Set-Cooike。
我只能curl抓取页面A,但是抓不到cookie,因为cookie是在页面B设置的。求高手解决问题!万分感激!

回复讨论(解决方案)

分两次/多次抓取
其实对于ajax/验证码等等都是这样做的

header("Content-type:text/html;charset=utf-8"); function request_by_curl($remote_server, $post_string) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $remote_server); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOBODY, false); curl_setopt($ch, CURLOPT_HEADER,true); curl_setopt($ch, CURLOPT_HTTPHEADER, array()); $data = curl_exec($ch); curl_close($ch); return $data; } //获取验证码 file_get_contents("http://jysx.scnu.edu.cn/VerifyImg.aspx"); $cookie = $http_response_header[6]; $code = substr($cookie,23,4); echo $code."<br>"; //post登录 $remote_server = "http://jysx.scnu.edu.cn/login.aspx"; $post_string = ''act=login&type=ajax&name=20102301025&pass=523523&verify=''.$code; echo request_by_curl($remote_server,$post_string);
登录后复制


这是我模拟登录华南师范大学抢实习的php代码,好像不行啊

可以了!!!!!

为什么这个网站会把验证码写到头信息里??

Fiddler无法抓到https的解决方法

Fiddler无法抓到https的解决方法

1:请在“运行”,即下面这个地方输入certmgr.msc并回车,打开证书管理。

 

打开后,请点击操作--查找证书,如下所示:

 

然后输入“fiddler”查找所有相关证书,如下所示:

 

可以看到,我们找到一个,您可能会找到多个,不要紧,有多少个删多少个,全删之后,这一步完成

 

2:再接下来,打开火狐浏览器,进入选项-高级-证书-查看证书,然后找以DO_NOT开头的关于Fiddler的证书,以字母排序的,所以你可以很快找到。找到多少个还是删除多少个, 特别注意,请如图中【个人、服务器、证书机构、其他】等标签依次查找,以免遗漏,切记切记!

 

3:下载 FiddlerCertMaker.exe,可以去官网找,下载了这个之后,直接安装,直到如下

 

 

然后点击确定,关掉它。

 

4:有了证书之后,请重启Fiddler(关掉再开),重启之后,访问https的网站,比如淘宝首页,有可能成功了,但你也有可能会发现如下错误:"你的连接并不安全" 等类似提示。见到这里,你应该开心,离成功近了。

 

5:果断的,打开fiddler,“Tools--Fiddler Options--HTTPS”,然后把下图中同样的地方勾上(注意一致),然后点击actions,然后先点击Trust Root…,然后,再点击Export Root…,此时,导出成功的话,在桌面就有你的证书了。 务必注意:这一步成功的话,把第(6)步跳过,不要做了,直接进入第(7)步, 如失败,请继续第(6步)。

 

makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com " -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012

 

7:好,证书从fiddler导入到桌面后,再打开火狐浏览器,然后进入:选项-高级-证书-查看证书-导入-选择刚导出的桌面的证书-确定。

 

8:随后,Fiddler重启,火狐浏览器也重启一下,然后开始抓HTTPS的包,此时你会发现“ 你的连接并不安全" 等类似提示已经消失,并且已经能够抓包了。

我们今天的关于如何解决百度spider无法抓取的问题?如何解决百度spider无法抓取的问题的分享就到这里,谢谢您的阅读,如果想了解更多关于.net 解决spider多次和重复抓取的方案、Baiduspider无法正常抓取、CURL抓取的网页中,通过相对路径引用了其他页面,如何解决cookie问题?、Fiddler无法抓到https的解决方法的相关信息,可以在本站进行搜索。

本文标签:

上一篇网络爬虫(Spider)(网络爬虫spider)

下一篇PageRank(PR值)