python访问网页如何查看user-agent_HTTP请求头之User-Agent

前言

之前学习北京理工嵩天老师的《Python网络爬虫与信息提取》时,爬取亚马逊的一款图书的详细信息时出现以下错误:

![Upload 亚马逊爬虫.PNG failed. Please try again.]

查看请求信息,发现我们一般写的爬虫会默认告诉服务器自己发送了一个Python爬取请求,而一般网站是不允许被爬虫访问的,估计是因为会涉及到商业问题。最后,通过更改User-Agent字段就可以轻易骗过该网站。

那么User-Agent到底是什么呢?

User-Agent会告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答。

又该如何使用呢?

调试工具

最简单的方法就是按照下面步骤进行

打开你要爬虫的网页

按键盘的F12或手动去浏览器右上角的“更多工具”选项选择开发者工具

按键盘的F5刷新网页

点击Network,再点击Doc

点击Headers,查看Request Headers的User-Agent字段,直接复制

将刚才复制的User-Agent字段构造成字典形式

什么?你想搞懂这个User-Agent字段,然后自己构建。

User-Agent字段解释

简要版解释:

我用的Chrome浏览器,查看User-Agent的结果:

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

User-Agent通常格式:

Mozilla/5.0 (平台) 引擎版本 浏览器版本号

第一部分:Mozilla/5.0

由于历史上的浏览器大战,当时想获得图文并茂的网页,就必须宣称自己是 Mozilla 浏览器。此事导致如今User-Agent里通常都带有Mozilla字样,出于对历史的尊重,大家都会默认填写该部分。

第二部分:平台这部分可由多个字符串组成,用英文半角分号分开

Windows NT 10.0是指我使用的操作系统的版本,比如我使用的win10对应的就是Windows NT 10.0,如果我使用win7对应的就是Windows NT 6.1。

Win64; x64是指我的操作系统是64位的

Windows系统下:

Windows NT 5.0 // 如 Windows 2000

Windows NT 5.1 // 如 Windows XP

Windows NT 6.0 // 如 Windows Vista

Windows NT 6.1 // 如 Windows 7

Windows NT 6.2 // 如 Windows 8

Windows NT 6.3 // 如 Windows 8.1

Windows NT 10.0 // 如 Windows 10

Win64; x64 // Win64 on x64

WOW64 // Win32 on x64

Linux系统下:

X11; Linux i686; // Linux 桌面,i686 版本

X11; Linux x86_64; // Linux 桌面,x86_64 版本

X11; Linux i686 on x86_64 // Linux 桌面,运行在 x86_64 的 i686 版本

macOS系统下:

Macintosh; Intel Mac OS X 10_9_0 // Intel x86 或者 x86_64

Macintosh; PPC Mac OS X 10_9_0 // PowerPC

Macintosh; Intel Mac OS X 10.12; // 不用下划线,用点

第三部分:引擎版本

AppleWebKit/537.36 (KHTML, like Gecko)...Safari/537.36,历史上,苹果依靠了WebKit内核开发出Safari浏览器,WebKit包含了WebCore引擎,而WebCore又从KHTML衍生而来。由于历史原因,KHTML引擎需要声明自己是“类似Gecko”的,因此引擎部分这么写。再后来,Google开发Chrome也是用了WebKit内核,于是也跟着这么写。借用Littern的一句话:“Chrome 希望能得到为Safari编写的网页,于是决定装成Safari,Safari使用了WebKit渲染引擎,而WebKit呢又伪装自己是KHTML,KHTML呢又是伪装成Gecko的。同时所有的浏览器又都宣称自己是Mozilla。”。不过,后来Chrome 28某个版本改用了blink内核,但还是保留了这些字符串。而且,最近的几十个版本中,这部分已经固定,没再变过

第四部分:浏览器版本

本人用的是Chrome浏览器,其中60.0 是大版本,3100是持续增大的一个数字,而0则是修补漏洞的小版本。

最后,居然有大佬封装了不同操作系统不同浏览器的User-Agent:User-Agent封装使用教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab数据游标属性设置,将节点属性添加到图论图数据提示

绘制具有数据提示的 GraphPlot 对象创建随机有向图的 GraphPlot 图对象。将额外的节点属性 wifi 添加到该图。rng defaultG digraph(sprandn(20, 20, 0.05));G.Nodes.wifi randi([0 1], 20, 1) 1;h plot(G);向图中添加数据提示。利用数据提示,您能够选择图论图中…

matlab 邻近度 离群点_MATLAB自制迷宫游戏,快来试试吧!

前几天给大家介绍了“一行matlab代码可以做哪些匪夷所思的事情”,今天小编带给大家一款酷炫的私人订制版迷宫游戏。这款迷宫游戏包含以下功能:随机生成迷宫地图通过键盘手动求解生成的迷宫MATLAB自动求解生成的迷宫目前主流的生成迷宫的算法有&#xff1…

python中常见的流程_Python面试中最常见的25个问题-结束

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼13)Python中的lambda表达式是什么?lambda表达式是一个匿名函数,通常用作代码行内的嵌入函数。14)为什么Python中的lambda表达式没有声明?Python中的lambda表达式没有声明是因为它只是用来创建一个…

matlab中m文件的作用,M文件主要包含()_matlab中m文件的好处

M文件主要包含()答:M函数文件\n\nM命令文件(脚本文件)" src"" style"max-width: 100%; display: inline;">中国大学MOOC: 在缓冲区分析中二次模型的表示的主体对象对临近对象的影响随距离的增大呈线性衰减。答:错巡航速度是…

xcopy复制文件夹及其子文件_嗨学习:如何给电脑中文件夹设置密码

文件夹怎么设置密码,如何给文件夹设置密码?有些重要的文件或比较隐私的文件存放在电脑上,这些文件我们只希望自己能看到并使用,不希望别人访问。那么,最好的办法就是去对这些文件进行加密。 才不怕别人看到自己的隐私,设置密码&a…

python多线程为什么要用队列_Python程序中的线程操作-线程队列

一、线程队列queue队列:使用import queue,用法与进程Queue一样queue is especially useful in threaded programming when information must be exchanged safely between multiple threads.二、先进先出class queue.Queue(maxsize0)import queueqqueue.…

php的修改数据库语句怎么写,php的数据库修改语句是什么

php的数据库修改语句是UPDATE,用于更新数据库表中已存在的记录,语法为【UPDATE table_name SET column1value, column2value2,...WHERE some_columnsome 】。本教程操作环境:windows7系统、PHP5.6版,DELL G3电脑。UPDATE 语句用于…

ubuntu20.04中安装划词翻译_教你轻松玩转免安装的网页翻译插件“有道网页翻译2.0”...

大家在日常网页浏览中肯定多多少少都会碰到英文网站,这时候往往需要花费非常多的时候去自行理解,效率低下,又或者借助浏览器自带的翻译功能进行翻译,但又可能遇到翻译不准的情况。现在这个问题可以解决啦!“有道网页翻…

c语言python零基础教学_编程零基础应当如何开始学习 Python?附教程

零基础学编程,用python入门是个不错的选择,虽然国内基本上还是以c语言作为入门开发语言,但在国外,已经有很多的学校使用python作为入门编程语言。此外,python在机器学习,人工智能领域也非常流行&#xff0c…

python 主要内容,介绍一些有关python的重要内容

Python的参数传递方式是:位置,默认值,变量参数,关键词参数。传值究竟是函数的值传递还是引用传递,要分情况:不变参数用值传递:像整型和string这样的不变对象是通过拷贝来传递的,因为…

系统业务逻辑书籍_「樊登读书会强推:免费送10本绝密书」彻底改变你的逻辑思维能力...

哈喽~你好我是JS-冰冰今天在星巴克喝咖啡整理了一些巨大价值的绝密资料,从过往在樊登读书会整理的10本彻底改变《逻辑思维能力》的绝密电子书。非常实用,对我的改变和提升非常有帮助,所以想把这份改变命运的绝密大礼包也送给需要的小伙伴~(怎…

饿了么风神登录_海底捞首度登陆第三方外卖!联手饿了么全国配送“小火锅”...

近日,“海底捞”正式联手饿了么推出第三方外卖配送服务。据悉,这是海底捞首次与本地生活服务平台合作推出第三方外卖业务。包括上海、济南、福州、郑州等多个城市的用户登录饿了么平台,下单购买海底捞“小火锅”外送等产品后,便可…

script标签里src为php,如何获取指定为script标记的'src'的文件的内容?

tl; dr脚本标记不受CORS和同源策略的约束,因此javascript / DOM无法提供对通过长版本: 大多数其他答案(以及公认的答案)正确表明,“ 正确 ”的方式来获取通过会破坏CORS策略,例如,现代浏览器阻止了XHR资源提供访问控制…

数据相关的在职研究生_南方医科大学2020年招收在职博士研究生导师名单及复试考生名单!...

南方医科大学2020年在职博士研究生入围复试考生名单各位考生:根据我校招收2020年在职博士研究生相关工作规定,现就进入复试考生名单予以公示,请入围复试考生密切关注我校相关复试公告,做好复试准备。南方医科大学招收2020年在职博…

富文本++php+源码,自己实现富文本编辑器

【实例简介】网页中经常需要输入多种资料,自带的TextBox不够用【实例截图】【核心代码】//************************************************************************************//将texttemp内容移入iframeiframeDocument.body.innerHTML parent.document.getE…

gridlayoutmanager 设置间距_不设置主灯的客厅应当如何保证较好的灯光分布?

如果没有从事照明设计的专业人士或者是比较有经验的室内设计师协助业主做决策,个人不太建议普通业主自行设置“无主灯客厅”的灯光分布。在日常设计工作中,如果委托人确已考虑放弃主灯,通常我也会建议业主保留已有的客厅主灯的灯控线路及开关…

Oracle filter 函数,Oracle数据库之SQL单行函数---字符函数续

前一篇博客练习了一些字符函数,之后自己又去下查阅了相关的资料,上一篇博客中还有很多的字符函数没有练习到,这次主要是对上次的一些未用到的字符函数进行一些补充练习。ascii()返回与指定的字符对应的十进制数,若为字符串则返回字符串首字母…

python 数据导入mysql_用python批量向数据库(MySQL)中导入数据

用python批量向数据库(MySQL)中导入数据现有数十万条数据,如下的经过打乱处理过的数据进行导入数据库内部的表格的数据格式如下与下面的表格结构相同Current database: python_test_1--------------------------------------------------------| Field | Type | Null | Key | D…

怎么画单极交流放大电路波形图_珠海放大IC怎么样

容抗XC1/2πf c (f表示交流信号的频率,C表示电容容量)电话机中常用电容的种类有电解电容、瓷片电容、贴片电容、独石电容、钽电容和涤纶电容等。集成电路更着重电路的设计和布局布线,芯片更强调电路的集成、生产和封装。而广义的集成电路,当涉…

python3 规则引擎_几个常见规则引擎的简单介绍和演示

Ilog JRules 是最有名的商用BRMS;Drools 是最活跃的开源规则引擎;Jess 是Clips的java实现,就如JRuby之于Ruby,是AI系的代表;Visual Rules(旗正规则引擎)国内商业规则引擎品牌。今天对比了一下这四个颇有代表性的规则引…