Python爬虫UA伪装爬取的实例讲解


Posted in Python onFebruary 19, 2021

在使用python爬取网站信息时,查看爬取完后的数据发现,数据并没有被爬取下来,这是因为网站中有UA这种请求载体的身份标识,如果不是基于某一款浏览器爬取则是不正常的请求,所以会爬取失败。本文介绍Python爬虫采用UA伪装爬取实例。

一、python爬取失败原因如下:

UA检测是门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常的请求。如果检测到请求的载体身份标识不是基于某一款浏览器的。则表示该请求为不正常的请求,则服务器端就很有可能会拒绝该次请求。

二、解决方法:采用UA伪装

让爬虫对应的请求载体身份标识伪装成某一款浏览器,这里采用的伪装成Chrome浏览器。

采用UA伪装爬取实例

import requests
if __name__=="__main__":
  headers={
    "User-Agent":"Mozilla/5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) 
    Chrome / 88.0.4324.150 Safari / 537.36"
  }
  url="https://www.sogou.com/web"
  queryword=input("输出关键字")
  param={
    "query":queryword
  }
  res=requests.get(url=url,params=param,headers=headers)
  res.encoding="utf-8"
  page_text=res.text
  fileName=queryword+".html"
  with open(fileName,"w",encoding="utf-8") as fs:
    fs.write(page_text)
  print(page_text+"爬取结束")

知识点扩展:

采用UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器,这里采用的伪装成Chrome浏览器

代码如下:

import requests
#UA:User—Agent(请求载体的身份标识)
# UA检测:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常的请求。
# 如果检测到请求的载体身份标识不是基于某一款浏览器的。则表示该请求为不正常的请求,则服务器端就很有可能会拒绝该次请求
if __name__=="__main__":
  headers={
    "User-Agent":"Mozilla/5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 88.0.4324.150 Safari / 537.36"
  }
  url="https://www.sogou.com/web"
  queryword=input("输出关键字")
  param={
    "query":queryword
  }
  res=requests.get(url=url,params=param,headers=headers)
  res.encoding="utf-8"
  page_text=res.text
  fileName=queryword+".html"
  with open(fileName,"w",encoding="utf-8") as fs:
    fs.write(page_text)
  print(page_text+"爬取结束")

到此这篇关于Python爬虫UA伪装爬取的实例讲解的文章就介绍到这了,更多相关Python爬虫如何UA伪装爬取内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
Python操作MySQL简单实现方法
Jan 26 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
Python在Matplotlib图中显示中文字体的操作方法
Jul 29 Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
基于python修改srt字幕的时间轴
Feb 03 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
Apr 08 Python
基于keras中的回调函数用法说明
Jun 17 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
5行Python代码实现一键批量扣图
Jun 29 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 #Python
python 高阶函数简单介绍
Feb 19 #Python
如何用Matlab和Python读取Netcdf文件
Feb 19 #Python
python中最小二乘法详细讲解
Feb 19 #Python
python中scipy.stats产生随机数实例讲解
Feb 19 #Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 #Python
python+opencv实现车道线检测
Feb 19 #Python
You might like
php创建多级目录代码
2008/06/05 PHP
PHP Document 代码注释规范
2009/04/13 PHP
php中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
nginx下安装php7+php5
2016/07/31 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
JS锚点的设置与使用方法
2016/09/05 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
vue实现登录功能
2020/12/31 Vue.js
Python自动调用IE打开某个网站的方法
2015/06/03 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
详解python itertools功能
2020/02/07 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
python3中编码获取网页的实例方法
2020/11/16 Python
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
预备党员思想汇报范文
2013/12/29 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
爱国主义演讲稿
2014/05/07 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
2014年工人工作总结
2014/11/25 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
利用python进行数据加载
2021/06/20 Python