谷歌浏览器检查爬虫 谷歌浏览器插件爬虫

大家好,今天小编来为大家解答谷歌浏览器检查爬虫这个问题,谷歌浏览器插件爬虫很多人还不知道,现在让我们一起来看看吧!

谷歌浏览器检查爬虫 谷歌浏览器插件爬虫

本文目录

  1. 为什么爬虫抓取的页面和浏览器看到不一致
  2. python爬虫获取浏览器payload
  3. python爬虫伪装浏览器出现问题求助
  4. 浏览器的“套娃行为”有多凶残

一、为什么爬虫抓取的页面和浏览器看到不一致

1、有可能是因为网页采用了动态网页技术,如AJAX、JavaScript等,导致浏览器中看到的网页内容与通过爬虫抓取的网页源代码不同。

2、动态网页技术可以使网页在加载后通过JavaScript代码动态地修改或添加页面内容,而这些修改和添加的内容是在浏览器中执行的,而不是在服务器端。因此,如果使用传统的爬虫工具,只能获取到最初加载的网页源代码,而无法获取动态生成的内容。

3、解决这个问题的方法是使用支持JavaScript渲染的爬虫工具,例如Selenium和Puppeteer。这些工具可以模拟浏览器行为,实现动态网页的加载和渲染,从而获取完整的网页内容。

4、另外,有些网站也可能采用反爬虫技术,例如IP封禁、验证码、限制访问频率等,这些技术也可能导致爬虫抓取的网页源代码与浏览器中看到的不一样。针对这些反爬虫技术,需要使用相应的反反爬虫策略。

二、python爬虫获取浏览器payload

1、上面的代码将会生成30个1到20之间的随机整数,并依次输出。

2、需要注意的是,在Python中,random.randint()函数生成的随机整数是包含边界值的。所以,上面的代码中,生成的随机整数可能包含1和100,也可能包含1和20。

3、总之,你可以使用 random.randint()函数来随机生成指定范围内的整数。

4、然后,您可以使用以下代码来获取网页中的payload数据:

5、html="<html><body>payload data</body></html>"

6、soup= BeautifulSoup(html,'html.parser')

7、在这段代码中,我们首先使用BeautifulSoup解析网页数据,然后通过soup.body.get_text()来获取网页中的payload数据。

三、python爬虫伪装浏览器出现问题求助

声明:以下代码在Python 3.3中编写调试完成!

data= urllib.request.urlopen(url).read()

结果发现不行,OSC加了保护,不止是OSC,CSDN等等很多网站都这样,这就必须要伪装浏览器正常访问了,类似蜘蛛爬虫一样,那么只有给代码加上一个Header,再试试读取HTML。

Chrome如何查看你的浏览器的Header:

F12打开开发人员工具,其他浏览器也有类似功能,很方便哦,这里我们只需要Request Headers中的User-Agent就可以了。

各种纠结呀,网上许多代码都是Python2的,我用的3.3,import很多都不一样了,没办法只有翻Python的官方文档,全英文有点苦,还好我的Chrome可以随时翻译,减轻负担呀。

在官方文档3.3中找到了urllib.request的文档:docs.python.org/3/library/urllib.request.html

在Examples中找到了一个addheaders的方法,试了一下果然能行,下面就是代码。

headers=('User-Agent','Mozilla/5.0(Windows NT 6.1) AppleWebKit/537.11(KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')

opener= urllib.request.build_opener()

到这里就能输出页面的HTML了,也可以直接保存成本地HTML文件,打开正常。

另外对于这编码问题还是有点迷茫。

另收藏一条很有用的语句,type(),类似于C语言中的typeof(),可以print出来直接查看数据类型,很方便!

四、浏览器的“套娃行为”有多凶残

几乎所有的中国网民都不会忘记 2010年的“ 3Q大战”。

在腾讯做出那个“非常艰难的决定”之后,360不但不能与 QQ同时安装了,使用 360浏览器的用户也不再能访问 QQ空间。

QQ空间作为当时最受欢迎的社交网站,腾讯的这一操作就等同于宣判了 360浏览器的死刑。

在此次大战中,发挥着关键性作用的是「浏览器 UA」,我们今天就来好好讨论一下这个话题。

要讲清楚这个话题,我们要从 1990年说起。

1990年,英国计算机科学家蒂姆·伯纳斯·李巧妙地提出了 HTTP协议,然后又编写了世界上第一个浏览器 World Wide Web,万维网就此诞生。

1993年,美国国家超级电脑应用中心(NCSA)推出了一款叫做 Mosaic(马赛克)的浏览器,它第一次将图片与文字同时在一起展示。

从此,浏览器就变得有趣且流行起来。

为了发挥 Mosaic浏览器的优势,Mosaic浏览器在访问网页时,会事先向网页服务器发送一段特定的字符串来标记自己,这样使用 Mosaic的用户能收到有图片的内容了。

这个字符串 Mosaic/2.0(Windows 3.1)就是 UserAgent,简称 UA,中文叫作“用户代理”。

从此,浏览器 UA作为一种“根据用户软硬件环境,进而采用不同内容策略”的技术诞生了。

1994年,Mosaic项目的核心成员马克·安德森离职,然后发布了一款全新的浏览器 Mozilla。

Mozilla除了是 Godzilla的谐音外,它还是 Mosaic Killa的缩写,意思是要做 Mosaic的终结者。

然而在 Mosaic的压力之下, Mozilla还是改名为了 Netscape(网景)浏览器。

不过在设置浏览器 UA时,Netscape仍然使用了 Mozilla的名字,也就是 Mozilla/1.0(Win3.1)。

接着,Netscape浏览器率先支持了网页框架技术,而其他浏览器要么不支持,要么支持得不够好,Netscape很快成为当时最流行的浏览器。

1995年,微软宣布进军互联网,然后发布了 IE浏览器。

尽管 IE浏览器同样也支持框架技术,但总是收不到有框架的页面,原因是网页服务器会先检测浏览器 UA中是否包含有 Mozilla。

如果有,那就发送有框架的页面,如果没有,那就发送不含框架的页面。

微软等不及市场的反应,于是在 IE浏览器的 UA中加入了 Mozilla的字样,也就是 Mozilla/1.22(compatible; MSIE 2.0; Windows 95)。

这样 IE浏览器就能正常接收到有框架的页面了。

于是,浏览器 UA也成为了解决浏览器兼容性的一个重要手段。

没过多久,微软采用了将 IE与 Windows捆绑销售的策略,Netscape浏览器被打败退出历史舞台。

不甘失败的 Netscape团队在 2004年又推出了一款新的浏览器 Firefox。

Firefox浏览器使用的 Gecko引擎非常优秀,为了告诉大家,我使用了这个引擎,于是就加入到了浏览器的 UA里:

Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041108 Firefox/1.0。

由于 Gecko的出色和 IE的止步不前,浏览器 UA的探测规则发生了变化。

使用 Gecko引擎的浏览器可以得到更好的网页代码,而其他的浏览器则没有这种待遇。

Linux的追随者对此很难过,因为他们开发了基于 KHTML引擎的 Konqueror浏览器,他们认为 KHTML和 Gecko一样出色,但却因为不是 Gecko而得不到好的页面。

于是他们宣布 KHTML兼容 Gecko(like Gecko),浏览器 UA就变成了:

Mozilla/5.0(compatible; Konqueror/3.2; FreeBSD)(KHTML, like Gecko)。

一直使用自主 UA的浏览器 Opera也同样有这样的问题。

但 Opera不是简单地把自己也标记为 Gecko,而是主张让用户来决定变成什么样的浏览器。

于是 Opera在菜单里增加了浏览器 UA的选项,让用户来选择是变成 IE还是 Firefox,又或者是它自己本体。

2003年,苹果公司从 KHTML引擎中分支出来了 Webkit,然后开发了 Safari浏览器。

为了兼容性的考虑,于是苹果将 KHTML内核 UA中的 Mozilla、KHTML、Gecko统统继承了下来,变成了:

Mozilla/5.0(Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85.7(KHTML, like Gecko) Safari/85.5。

2008年,谷歌使用了苹果的 Webkit开发出了 Chrome浏览器。

和 Safari一样,Chrome浏览器也想兼容那些为 Safari专门编写的页面,于是就继承了 Safari的 UA,然后再加入自己的 UA:

M ozilla/5.0(Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13(KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13。

如果要问谁是“伪装之王”,那一定非 Edge莫属了。

2020年,微软转用谷歌的 Chromium内核开发 Edge浏览器,为了不再受兼容性的困扰,Edge浏览器几乎将所浏览器的 UA都加入了进来,于是就有了:

Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/90.0.4430.70 Safari/537.36 Edg/90.0.818.38

如果把 UA的伪装比作是“俄罗斯套娃”的话,我们会发现:

Edge伪装成 Chrome,Chrome伪装成 Safari,Safari伪装成 KHTML,KHTML伪装成 Gecko,Gecko和 IE又伪装成 Mozilla,最终,所有浏览器的 UA都以 Mozilla开头。

尽管 Mozilla作为一个浏览器而言,早已从市场上消失。

浏览器 UA的利用,通常与浏览器的功能性相关,但也会有其他的因素。

比如当年的“ 3Q大战”,QQ空间利用 360浏览器 UA中含有的“ 360SE”字样来屏蔽 360浏览器,而 360浏览器为了躲避封杀,则将“ 360SE”的字样从浏览器 UA中移除。

又比如一些视频网站,针对桌面浏览器和安卓手机浏览器,会推送视频贴片广告,而对苹果的 Safari浏览器则不推送。

还有如百度网盘,用一般的浏览器下载会大幅限速,而用自家的“百度云管家”则会小幅限速。

对于这类区别对待,我们有必要夺回浏览器 UA的控制权。

首先,我们检查一下当前使用浏览器的 UA,方法在地址栏中输入:

又或者打开下面三个网站来检测:

然后,我们可以使用拓展 User-Agent Switcher and Manager来自定义浏览器 UA,拓展同时还支持“白名单模式”,可以对不同的网站使用不同的浏览器 UA。

又或者使用拓展 Header Editor来修改浏览器 UA。

它的优点在于多功能合一,可以省去安装一个专门的浏览器 UA拓展,支持 Chrome、Edge、Firefox三款浏览器。

就是要注意,使用完后要切换回默认的 UA哦。

说到底,浏览器 UA其实是“浏览器大战”的产物。

如果我们想要有一个更加畅通无阻的互联网,那么就很有必要去了解它。

而且,随着 Python和大数据的火热,「爬虫技术」和「反爬虫技术」的入门也都离不开浏览器 UA。

看完这篇文章后,相信你已经半只脚踏入这个领域了,至少在朋友面前装个 B已经是没问题了。

好了,文章到此结束,希望可以帮助到大家。

声明:信息资讯网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者东方体育日报所有。若您的权利被侵害,请联系 删除。

本文链接:http://www.gdxhedu.com/news/167378.html