抓取网页数据php(新版移动ua:Mozilla/5.0(Linux;u;+)之前通过“+”进行识别)
优采云 发布时间: 2022-04-06 00:10抓取网页数据php(新版移动ua:Mozilla/5.0(Linux;u;+)之前通过“+”进行识别)
新版手机ua:
Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) 版本/5.1 Mobile Safari/10600.6.3(兼容;Baiduspider/2.0;+)
电脑UA:
Mozilla/5.0 (兼容;百度蜘蛛/2.0;+)
请注意 网站 之前用“+”标识!您需要修改识别方法。新识别百度蜘蛛手机ua的正确方法如下:
1. 由关键词“Android”或“Mobile”识别,判断为移动访问或爬取。
2.通过关键词“Baiduspider/2.0”判断为百度爬虫。
还需要强调的是,对于被封禁的机器人,如果被封禁的代理是Baiduspider,它将在PC端和移动端都生效。即无论是PC还是手机百度蜘蛛,都不会抓取被禁对象。之所以要强调这一点,是因为我发现有些代码是适配网站的(同样的url,打开PC ua时是PC页面,打开mobile ua时是手机页面)。以抓取为目的,但是由于PC端和手机端的百度蜘蛛代理都是百度蜘蛛,所以这种方法是非常不可取的。
如何识别百度蜘蛛
百度蜘蛛可以算是站长的客人,但是我们遇到过站长问这样一个问题:我们如何判断那些疯狂抓取我们网站内容的蜘蛛是不是百度?其实站长可以通过DNS查IP。判断蜘蛛是否来自百度搜索引擎。根据不同的平台,验证方法不同。例如linux/windows/os三个平台下的验证方式如下:
1、在linux平台下,可以使用host ip命令倒置ip来判断是否是从百度蜘蛛爬取的。百度蜘蛛的主机名以 *. 或 *.baidu.jp,如果不是 *. 或 *.baidu.jp 为冒名顶替。
2、在Windows平台或IBM OS/2平台下,可以使用nslookup ip命令破译ip来判断抓包是否来自Baiduspider。打开命令处理器,输入nslookup xxx.xxx.xxx.xxx(IP地址)解析ip,判断是否是从百度蜘蛛抓到的。百度蜘蛛的主机名以 *. 或 *.baidu.jp,而不是 *. 或者 *.baidu.jp 是冒名顶替。
3、 在mac os平台上,可以使用dig命令破译ip,判断是否是从百度蜘蛛爬取的。打开命令处理器,输入dig xxx.xxx.xxx.xxx(IP地址)解析ip,判断是否来自Baiduspider。百度蜘蛛的主机名以 *. 或 *.baidu.jp,而不是 *. 或者 *.baidu.jp 是冒名顶替。
什么是百度蜘蛛IP
即便很多站长知道怎么判断百度蜘蛛,也会继续问“百度蜘蛛IP是什么”。我们理解站长的意思,就是要把百度蜘蛛的IP加入白名单,只允许白名单下的IP爬网站,避免被采集等动作。
但我们不建议网站管理员这样做。虽然百度蜘蛛确实有一个IP池,并且真实IP是在这个IP池内切换的,但我们不能保证整体IP池不会发生变化。因此,我们建议站长认真阅读日志,在发现恶意蜘蛛后将其加入黑名单,以保证百度的正常爬取。
同时我们再次强调,以IP来区分百度蜘蛛的属性是非常可笑的。所谓的“沙盒蜘蛛”、“委托蜘蛛”等从未存在过。
机器人符号
机器人是网站与蜘蛛进行交流的重要渠道。该站点通过robots文件声明了网站中不想被搜索引擎收录搜索到的部分,或者指定搜索引擎只收录特定的部分。请注意,仅当您的 网站 收录您不想被搜索引擎收录 搜索的内容时,才需要 robots.txt 文件。如果您想要搜索引擎 收录网站 上的所有内容,请不要创建 robots.txt 文件。
robots文件通常放在根目录下,收录一条或多条记录,记录之间用空行分隔(以CR、CR/NL或NL为终止符)。每条记录的格式如下:
“:”
在这个文件中可以使用#作为注解,具体用法同UNIX中的约定。此文件中的记录通常以一行或多行 User-agent 开头,然后是几行 Disallow 和 Allow 行。详细情况如下:
User-agent:此项的值用于描述搜索引擎机器人的名称。在“robots.txt”文件中,如果有多个User-agent记录,则表示多个机器人会受到“robots.txt”的限制。对于此文件,必须至少有一个 User-agent 记录。如果此项的值设置为 *,则对任何机器人都有效。在“robots.txt”文件中,“User-agent:*”只能有一条记录。如果在“robots.txt”文件中,添加“User-agent: SomeBot”和几行Disallow和Allow行,那么“SomeBot”的名称只受“User-agent: SomeBot”后面的Disallow和Allow行的限制。
Disallow:此项的值用于描述一组不想被访问的URL。该值可以是完整路径,也可以是路径的非空前缀。机器人不会访问以 Disallow 项的值开头的 URL。例如,“Disallow:/help”禁止机器人访问/help.html、/helpabc.html、/help/index.html,而“Disallow:/help/”允许机器人访问/help.html、/helpabc。 html,但不能访问 /help/index.html。“Disallow:”表示允许机器人访问网站的所有URL,且“/robots.txt”文件中必须至少有一条Disallow记录。如果“/robots.txt”不存在或为空文件,则 网站 对所有搜索引擎机器人开放。
允许:此项的值用于描述您希望访问的一组 URL。与 Disallow 项类似,该值可以是完整路径,也可以是路径前缀。以 Allow 项的值开头的 URL 是允许机器人访问的。例如“允许:/hibaidu”允许机器人访问/hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。网站 的所有 URL 默认为 Allow,因此 Allow 通常与 Disallow 结合使用,以允许访问某些网页,同时禁止访问所有其他 URL。
使用“*”和“$”:百度蜘蛛支持使用通配符“*”和“$”来模糊匹配url。
"*" 匹配零个或多个任意字符
"$" 匹配行终止符。
最后要注意的是:百度会严格遵守机器人的相关协议。请注意区分您不想被爬取的目录或收录的大小写。与收录的目录完全匹配,否则robots协议不会生效。
机器人要求使用对应表
上面提到的理论有很多。有没有简单的对照表告诉我在什么样的需求场景下怎么写robots文件?是的:
除了机器人之外的其他禁止百度的方式收录
Meta robots标签是页面头部的一种标签,也是用于防止搜索引擎索引页面内容的指令。目前百度只支持nofollow和noarchive
nofollow:阻止搜索引擎跟踪此页面上的链接
如果您不希望搜索引擎跟踪此页面上的链接,并且不传递链接的权重,请将此元标记放置在页面的部分中:
如果不希望百度跟踪特定链接,百度也支持更精准的控制,请直接在链接上写下这个标记:signin
要允许其他搜索引擎关注,但只阻止百度关注您页面的链接,请将此元标记放置在您页面的部分中:
noarchive:阻止搜索引擎在搜索结果中显示网页快照
要防止所有搜索引擎显示您的 网站 快照,请将此元标记放置在您网页的部分中:
要允许其他搜索引擎显示快照,但只阻止百度显示,请使用以下标记:
注意:该标签仅禁止百度显示页面快照。百度将继续对页面进行索引,并在搜索结果中显示页面摘要。
用机器人巧妙避开蜘蛛黑洞
对于百度搜索引擎来说,蜘蛛黑洞特指网站以极低的成本创建大量参数过多、内容相似但不同的url的动态url,就像一个无限循环的“黑洞”,会被困住. Spider 会浪费大量资源来抓取无效网页。
比如很多网站都有过滤功能,过滤功能生成的网页往往被搜索引擎大量抓取,其中很大一部分是检索价值不高的页面。比如“租房价格在500-1000之间”,首先网站(包括现实中)基本没有相关资源,其次,网站用户和搜索用户都没有引擎有这样的检索习惯。这种网页被大量搜索引擎抓取,只能占用网站宝贵的抓取配额,那么如何避免这种情况呢?
下面以北京美团为例,看看美团是如何利用机器人巧妙避开这个蜘蛛黑洞的:
对于普通的过滤结果页面,使用静态链接,如:
同样是条件过滤结果页面。当用户选择不同的排序条件时,会生成不同参数的动态链接,即使使用相同的排序条件(比如都是按销售额降序排序),生成的参数也是不一样的。的。例如:%2Fpoi.0.0.i1afqhek%2Fpoi.0.0.i1afqi5c
对于美团来说,让搜索引擎抓取和过滤结果页面就足够了,而通过robots规则拒绝将各种带参数的结果排序页面提供给搜索引擎。robots.txt的文件使用中有这样一条规则: Disallow: /*?* ,禁止搜索引擎访问网站中的所有动态页面。正是通过这种方式,美团网优先为蜘蛛展示优质页面,屏蔽低质量页面,为蜘蛛提供更友好的网站结构,避免黑洞的形成。
如何禁止百度图片搜索 收录 某些图片
目前,百度图片搜索也使用与百度网页搜索相同的爬虫。如果要禁止百度蜘蛛抓取网站上的所有图片,禁止或允许百度蜘蛛抓取网站上特定格式的图片文件,可以通过设置robots来实现:
禁止百度蜘蛛抓取网站上的所有图片
只允许网页,不允许图像。
用户代理:百度蜘蛛
禁止:/*.jpg$
禁止:/*.jpeg$
禁止:/*.gif$
禁止:/*.png$
禁止:/*.bmp$
只允许百度蜘蛛抓取网页和.gif格式的图片
允许抓取网页和gif格式的图片,不允许抓取其他格式的图片
用户代理:百度蜘蛛
允许:/*.gif$
禁止:/*.jpg$
禁止:/*.jpeg$
禁止:/*.png$
禁止:/*.bmp$
只有百度蜘蛛禁止抓取.jpg格式的图片用户代理:百度蜘蛛
禁止:/*.jpg$
503状态码的使用场景及与404的区别
Html 状态码也是 网站 与蜘蛛通信的渠道之一。它会告诉蜘蛛网页的当前状态,然后蜘蛛会决定下一步该做什么——捕捉还是不捕捉,或者下次检查。200状态码大家已经很熟悉了,下面介绍几种常见的无效网页使用的状态码:
[404] 404 返回码的含义是“未找到”。百度会认为该网页已经失效,所以一般会从搜索结果中删除,短期内蜘蛛不会再次抓取该url。
[503] 503返回码的意思是“服务不可用”,百度会认为网页暂时不可用,通常网站暂时关闭,带宽受限。对于返回503的网页,百度蜘蛛不会直接删除这个url,短期内会再次访问。届时,如果网页已经恢复,则正常爬取;如果继续返回503,短时间内会被多次访问。但如果网页长时间返回503,该url仍会被百度视为无效链接,从搜索结果中删除。
[301] 301返回码的意思是“永久移动”,百度会认为网页当前正在跳转到新的url。遇到网站迁移、域名变更、网站改版等情况,建议使用301返回码,尽量减少改版带来的流量损失。虽然百度蜘蛛现在对 301 跳转的响应时间更长,但还是建议大家这样做。
有的网站把未建的页面放到网上,这些页面被百度爬取的时候,返回码是404,所以这些页面被百度爬取后会作为死链接删除。不过这个页面会在第二天或者几天后建好,会显示在网站中,但是由于之前已经被百度删除为死链接,所以需要等待这些链接被再次发现,然后抓取 这个操作最终会导致一些页面在一段时间内没有出现在百度。例如,某大型门户网站网站爆出大量时效性强但百度不及时收录的新闻话题。经检查核实,发现是因为页面未完成而被放到网上,返回404。
对于这样的问题,建议使用503返回码网站,这样百度的爬虫在收到503返回码后会在一段时间后再次访问这个地址。也可以重新爬取,保证页面及时被爬取和索引,避免不必要的收录和未建内容设置为404后的流量丢失。
其他建议和总结:
1、如果百度蜘蛛对你的网站抓取压力太大,请尽量不要使用404,也建议返回503。这样百度蜘蛛会在一段时间后再次尝试抓取链接. 如果那个时候站点是空闲的,就会爬取成功。
2、如果网站暂时关闭或者页面还没有建好,当网页打不开或者还没有建好时,不要马上返回404,建议使用503状态。503可以通知百度蜘蛛该页面暂时不可用,请稍后再试。
0 连接率的原因和后果及预防措施
当在百度站点遇到“连接率为0”时,说明Baiduspider在访问站点时发现了问题。问题非常严重。如果百度蜘蛛一天无法访问网站,可能会给网站带来灾难性的损失。
一、什么是连通性
由于它是一个比率,它是一个与统计相关的概念。我们不妨理解一个网站的连接率:百度蜘蛛在爬取一个网站页面时计算出来的概率,比如它爬取了某个网站中的N个页面,这个N页面可以被蜘蛛打开并成功爬取,这样的连接率为N/N=100%,反之,蜘蛛抓取N个页面,M个页面可以成功爬取,连接率为M/N
这里先说一些常识:
1、不是网站被算法惩罚,连接率为0,也不是网站流量减少导致连接率很低;
2、连接率代表百度蜘蛛获取网站数据的情况。如果连接率很低或者为0,那么甚至有可能维持网站的正常收录。题;
3、如果网站被判断为未连接,那么如果一个无法连接的站点被允许在百度排名,将极大影响搜索用户的体验,因此百度将采取措施有效引流网站的流量。在清索引操作中,有的站长会发现自己的网站索引量突然急剧下降,甚至短时间内清零为0,随后网站百度搜索流量急剧下降。这突如其来的性事件,会让站长们猜测他们的网站已经被百度处罚了。其实站长首先要注意网站的连通性。
二、提取核心词
在上述概念中,我们需要注意几个词:“百度蜘蛛”;“爬行”;“N 页”;“M 页”;“都可以打开并成功爬取”。
三、连接率很低或为0时
我们抓取上面提取的5个核心词进行分析。
(一)百度蜘蛛
1、谨防百度蜘蛛访问被操纵或禁止
(1)由于百度蜘蛛抓取量等原因,部分服务器承受压力,而这些网络运营商或网站运营商,出于一定利益考虑,有意无意地屏蔽了百度蜘蛛,造成部分服务器或者所有百度蜘蛛ip都无法获取网站数据;
(2)有些网站运营商或网络商对待蜘蛛的方式不同,比如国外蜘蛛ip、山东蜘蛛ip、北京蜘蛛ip等,返回的数据不一样,搬花搬砖的方法层出不穷。树,这个过程非常困难 可能会导致百度蜘蛛的异常行为或异常状态返回;
所以我们首先要确保百度蜘蛛的访问没有被操纵或禁止。
2、注意事项