【Python爬虫】分析网页真实请求

Python011

【Python爬虫】分析网页真实请求,第1张

1、抓取网页、分析请求

2、解析网页、寻找数据

3、储存数据、多页处理

翻页有规律:

很多网址在第一页时并没有变化,多翻下一页后规律就出来,比如 豆瓣第一页 和 豆瓣第三页

发现start为40,limit=20,所以猜测start=0就是第一页,每页显示20条数据,对于第三页显示的参数可以一个个删除验证,可以减去不必要的参数, 但是删除前一定要做好数据的对比

(1) 文本框输入后产生一个请求,如常见的登录、注册页面

Referer:表示当前请求的来源

Request URL:表示实际请求地址

翻页后URL不变,该如何寻找请求?

如: http://www.zkh360.com/zkh_catalog/3.html

通过对比可以发现网站是通过pageIndex参数控制翻页的,?表示连接

接下来用抓包工具分析下 ,从第四页开始看URL就知道了,但是前面几面需要查看请求的参数,这里偏多,就切换到【Inspectors--Webforms】选项,看的比较直观

类似的网站还有 今日头条 ,有兴趣的朋友可以去研究下

(可通过获取max_behot_time的值而改变as和cp)

一个现象:

很多情况下,我们需要登陆账号,才能爬取更多的信息。

而我们想要登陆的话,则需要带上 cookies。

以 https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php](https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php) 作为爬虫范例吧。

账号:spiderman,密码:crawler334566

这里又来了一个post请求?

(1)post和get都可以带着参数请求,不过get请求的参数会在url上显示出来。

(2)post请求的参数就不会直接显示,而是隐藏起来。像账号密码这种私密的信息,就应该用post的请求。

(3)get请求会应用于获取网页数据,比如我们之前学的requests.get()。post请求则应用于向网页提交数据,比如提交表单类型数据(像账号密码就是网页表单的数据)。

【requests headers】存储的是浏览器的请求信息,【response headers】存储的是服务器的响应信息。我们要找的cookies就在其中。

【response headers】里有set cookies的参数。set cookies是什么意思?就是服务器往浏览器写入了cookies。

明天接着写cookies吧,难的地方分多步完成!

爬虫流程

其实把网络爬虫抽象开来看,它无外乎包含如下几个步骤

模拟请求网页。模拟浏览器,打开目标网站。

获取数据。打开网站之后,就可以自动化的获取我们所需要的网站数据。

保存数据。拿到数据之后,需要持久化到本地文件或者数据库等存储设备中。

那么我们该如何使用 Python 来编写自己的爬虫程序呢,在这里我要重点介绍一个 Python 库:Requests。

Requests 使用

Requests 库是 Python 中发起 HTTP 请求的库,使用非常方便简单。

模拟发送 HTTP 请求

发送 GET 请求

当我们用浏览器打开豆瓣首页时,其实发送的最原始的请求就是 GET 请求

import requests

res = requests.get('http://www.douban.com')

print(res)

print(type(res))

>>>

<Response [200]>

<class 'requests.models.Response'>