网页抓取 加密html(爬虫介绍三种常见的加密方式及其解决方法(图))

优采云 发布时间: 2021-09-12 07:14

  网页抓取 加密html(爬虫介绍三种常见的加密方式及其解决方法(图))

  在使用爬虫爬取网页数据的过程中,我们经常会发现目标网页返回的HTML源代码经过了不同编码方式的加密,导致我们无法正确定位到需要的元素。本文介绍了三种常见的加密方法及其解决方案,以说明编写爬虫时请求头的重要性。情况一、JS加密防爬

  爬取影评数据()

  要抓取网页,请求页面的最简单和最常见的方法是

  

  此时返回的目标网页源代码为

  

  通过网上检索信息,这种情况叫做JS加密,解决这个问题的方法也很简单,就是给爬虫添加请求头,比如

  

  一般来说,网上大部分网页只需要在headers中添加User-Agent元素就可以正常抓取数据,但是有些网站已经添加了反抓取机制,所以我们需要添加相应的元素。比如这里的JS加密需要添加元素Cookies,返回源码如下:

  

  情况二、language标签反爬

  爬取猫眼电影的TOP100数据()

  如上直接访问返回的源代码为

  

  在不应用直接访问的情况下,目标网站服务器只会返回上图所示的无序英文,而不是我们在目标网站上看到的源代码。这时候还需要在请求头中添加元素Accept-Language如下:

  

  此时返回的页面源代码为

  

  Situation三、requests 库获取网页中文乱码处理

  

  当我们请求一个网页时,得到的源代码是正常的上图所示的英文中文乱码,我们要明白目标网站返回给我们的源代码是经过加密的(不同的编码方式) ),这是我们默认的解码方法,不能再解释了。这时候,我们有两个解决方案:

  1.打开target网站Developer界面,找到使用的编码方式,如下图:

  

  编写爬虫时添加代码:

  

  2.无论登陆页面使用哪种编码方式,都可以添加这行代码来破译:

  

  总结

  当我们发现请求页面的源代码与目标网站Developer接口不一致时,说明我们向目标网站发出的请求不完整或者返回的源代码需要进一步解释,但是不管遇到什么乱码,本文要强调的是,请求网页的源代码是从地面高层建筑爬取的第一步。我们都可以尽可能多地填写标题,避免不必要的时间和精力浪费。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线