当我们使用Python爬行时,HTTP请求进程——Chrome浏览器网络实际上使用第三方库以目标url向所在服务器发送请求,站点的服务器接收该请求响应中包含页面的源代码等。 然后,分析和处理子以获得所需的信息。
根据自己展示的内容,各网站有不同程度的反向手段。 我们需要分析这个,准确地得到自己想要的回报。 为了更直观地说明这个过程,我们使用Chrome浏览器的Network监听组件进行分析。
打开Chrome浏览器时,快捷键F12将打开浏览器的“开发人员工具”。 这里访问百度,观察在这个过程中发生了什么样的网络请求。 项目显示在Network页面的下方。 其中一个项目表示发送请求和接收响应的过程。
Name :请求名称
Status :响应状态代码。 由于200响应成功,这可以确定请求是否成功响应
Type :请求文档类型。 文档是HTML文档或HTML代码
启动器:请求者。 用于标记启动请求的对象或进程
Size :从服务器下载的文件和请求资源的大小。 如果是从缓存中获得的资源,则为from cache
Time :从请求开始到得到响应的总时间
防火墙:网络请求的可视化瀑布
单击第一个请求的详细信息。
回过头来:
一般部分:
Request URL :请求的URL
请求方法:请求使用的方法
状态代码:响应状态代码
远程地址—远程服务器的地址和端口
Reffer Policy:Referrer判别策略
请求标头:
Accept :请求标头字段,用于指定客户端可以接受的信息类型
接受编码:指定客户端可接受的语言类型
接受语言:指定客户端可接受的内容编码
Host指定请求资源的主机的IP和端口号。 这是请求URL的原始服务器或网关的位置
cookie :网站是存储在用户本地的数据,用于标识用户正在进行会话跟踪。 主要功能是保持当前的访问会话。 (非常重要! 呃! 呃! ) )
Referer :用于识别此请求来自哪个页面。 服务器获得此信息并进行适当的处理。 例如来源统计、防盗链等
User-Agent:是一种特殊的字符串标题,它允许服务器识别客户使用的操作系统和版本等信息。 做爬行动物的时候一定要添加这个信息
Content-Type :互联网媒体类型。 HHTP协议消息,用于表示特定请求中的媒体信息类型
以上说明了最重要的事情…
对应的头部:
Date :标识响应发生的时间
内容编码:指定响应内容的编码
Server :包含名称、版本号等服务器信息
Content-Type :指示要返回的数据类型的文档类型。 这里的text/HTML表示返回了html代码
设置密码:设置密码。 响应脑海中的Set-Cookie,将此内容放入Cookies中,告诉浏览器下次请求携带Cookies请求
Expires :指定响应过期时间,以便代理服务器可以将加载的内容更新到高速缓存中。 再次访问时,可以直接从缓存中加载,减轻服务器负载,缩短加载时间。
以上说明了最重要的事情…
一个HTTP请求包括了请求方法,请求网址,请求头,请求体,在爬虫的时候做重要的是做好请求头的伪装,要会看其网页返回的请求头,来分析其反爬,设置相应的请求头。之后就是响应体,从中我感觉最重要的是知道网页返回的内容的格式,从而来选择响应的第三方库来进行解析。
在请求头的设置中我感觉只要设置了User-Agent,Cookies,Referer,Accept便可应对绝大部分网页的反爬。
看到的兄弟可以通过评论分享自己设置请求报头时的经验