初次入手爬虫项目,需要对公司内部网站的数据进行采集。
数据库Server端负责人有把下载的链接发给我们,只要输入这个URL,就可以下载一个包含数据的excel表格。但是,使用Python爬虫时,总是遇到405错误。
梳理一下爬虫的学习历程。
1. 了解爬虫的相关知识
下面系列的小文写得浅显易懂,可以用来扫盲。对于一般的爬虫,下面的技巧足够用。
【爬虫系列相关文章】
2. 学会使用Chrome浏览器对XHR进行分析
关于XHR,请参见博文“XHR简介” ,简言之:XHR是XML Http Request的缩写,实现了无需刷新即可实现客户端和服务器端的状态更新。
下面以Chrome浏览器为例,看看如何查看网页中的XHR。
a. 按下Shift+Ctrl+C组合键;
b. 选择Network 页面(下图步骤1)
c. 选择XHR (下图步骤2)
d. 选择感兴趣的XHR对象(下图步骤3)
有时会有很多XHR对象在列表中,我们要选择对的XHR对象;可以从"Preview"或者“Response”中查看相关的内容进行确认。
e. 查看Headers页面(下图步骤4)
Headers中的页面包含了关键参数,我们在编程或者使用其他工具的时候要用到这些参数,所以要能理解并运用这些参数。
3. 使用Postman加速爬虫分析过程
Postman的下载地址是https://www.postman.com/downloads/,它提供了post/get等方法访问/测试服务器的快捷工具,并可以自动转成几十种语言的代码,使用十分便利。
关于Postman如何安装和使用,这里不做赘述,这里仅仅把我这2天遇到的案例分析的关键点共享出来。4个关键点,
a. URL 的填写(下图步骤1):请填写Chrome浏览器中XHR->Headers->General->Request URL的内容;
b. Request的方法(下图步骤2): 请选择Chrome浏览器中XHR->Headers->General->Request Method的内容;
c. Content-Type(下图步骤3):Postman会根据在“Body”页面的选择,自动选择类型;请将这项和Chrome浏览器中XHR->Headers->Request Headers->Content-Type保持一致。这一步十分关键,否则server端会抛出405异常;下图步骤4/5/6是在Postman中选择正确的Content-Type,十分关键。
d. 按照要求填入body数据(下图步骤7):数据来源于Chrome浏览器中XHR->Headers->Request Payload,格式要对。
填写好之后,点击“Send”, 如果成功,则会在Status中显示“200 OK”;如果错误,还要再分析。
最后,再讲一下Postman不可思议的代码转换功能。
Postman不仅可以测试Post等方法,还可以直接转换为数十种编程语言,十分便捷。直接上图如下,点击红圈内的“Code”,即可跳出各种编程语言的页面,按照自己的需要选择语言,比如我选择了“Python - Requests”.
Good Luck!
另外,如果爬虫https的链接,需要disable SSL,postman的设置如下,