py爬虫爬取网页前端页面信息进行数据分析学习笔记

python爬虫流程概述

我们通过代码利用requests库,从客户机发送请求到web服务器,通过.text函数获取网页文本,然后我们在通过正则表达式做web解析,提取出自己想要的字段re库,表达式中通过()实现提取,从而做数据分析。
当我们爬取网页数据的时候,我们首先需要request中的一些参数,这些参数如果直接通过网页刷新来找的话就太多了,我们只需要在当前操作下抓取数据包, 而不是整个刷新, 那样文件太多了, 不利于查找

开发者工具
在这里插入图片描述
在这里插入图片描述

  • 首先我们通过网站开发者工具中的network块,对计算机与web服务器之间的交互响应数据包中的资源,进行抓取,得到数据包的相关信息。
    对于python爬虫程序中,我们需要注意的一些点:
    请求函数(get,post)中的headers参数问题:
    1)user_agent(客户机是通过什么发出请求的,在chorm的开发者工具中找到,如上图最后一行):对于该参数我们需要注意,服务器是能够检测你的请求数据帧的,当服务器检测到你是通过python的爬虫发出的请求,也就是get,post函数中的headers参数的默认值,服务器将封掉你的IP地址,即反爬取,你也就无法爬取了。
    get请求形式:https://域名/服务器中的相对地址?发出的什么请求(post则不同为了保护数据安全,访问请求不会显示在url中,会打包在数据帧中,隐藏起来)
    2)refer:当前访问是由哪个计算机发出的,防止盗链,我们在网站内部访问网站内容的话,访问请求的数据包中的refer就为当前网页,如果是其他地方访问时,我们服务器一旦监测到,为了防盗链,直接不响应,即报server error。我们同样也可以在自己传参数来伪装。
    3)coockie:当我们需要爬取的网页信息需要登录时,我们有两种解决方案,第一,我们需要在headers块中加入cookie参数,具体值为开发者工具中的登陆后的cookie值,但是cookie值是有有效期的,就是本地缓存是有有效期的,时间到了,本地机的cookie失效,那么我们将不能通过cookie值来访问web服务器的登陆内容了。第二种方法,我们可以通过传向get/post函数中传参,这个字典在函数中为data,我们需要在浏览器的开发者工具中找到对应的键的变量名,然后进行赋值,如下图1,但是对于这种方法,如果键值对中存在验证码,那么我们将无法获取随机的验证码信息从而导致无法登录
    4)X-Requested-With:当我们爬取的网页的请求过程为异步请求(在开发者工具中查看有没有X-Requested-With参数,有就为异步,反之同步),我们需要在get/post函数中传入X-Requested-With: XMLHttpRequest,不写就为同步请求。

    5)data参数的获取, 一般是在这根线以下当前的参数。
    在这里插入图片描述

图1

我们在开发者工具中,在网页登录,然后找到login项,找到字典的相应键值对,以其为值,新建一个字典,作为get/post函数的传参。
在这里插入图片描述

  • 然后当我们通过.text函数得到文本,然后通过re库正则表达式(一般我们只需要将我们需要提取的部分用(.*?)提取表示,需要忽略的内容用.*?,我们观察需要提取的前端语句段,将需要提取内容用正则表达式替换掉,并用括号括起来即可),进行文本解析,提取数据,通过数据分析得到结论。

数据获取的其他方式

当我们有时候发现网站的前端页面很难爬取时,我们可以尝试查看网站的源码,从源码中获取所要数据。
eg.新冠肺炎疫情丁香园数据爬取


我们可以在右键点击页面’检查’定位,按钮的前端代码位置,修改也行。
session对象的用法

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页