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 相关文章推荐
Python递归遍历列表及输出的实现方法
May 19 Python
判断网页编码的方法python版
Aug 12 Python
PyQt5实现简单数据标注工具
Mar 18 Python
python pytest进阶之xunit fixture详解
Jun 27 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
Django缓存系统实现过程解析
Aug 02 Python
Python any()函数的使用方法
Oct 28 Python
Python魔法方法 容器部方法详解
Jan 02 Python
通过实例解析python and和or使用方法
Nov 14 Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 Python
Python使用pyenv实现多环境管理
Feb 05 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
python实现键盘输入的实操方法
2019/07/16 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
python队列原理及实现方法示例
2019/11/27 Python
使用Python三角函数公式计算三角形的夹角案例
2020/04/15 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
final, finally, finalize的区别
2012/03/01 面试题
计算机专业职业规划
2014/02/28 职场文书
说明书格式及范文
2014/05/07 职场文书
供应链金融服务方案
2014/05/25 职场文书
教师一帮一活动总结
2014/07/08 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
初中作文评语
2014/12/25 职场文书
学生会工作感言
2015/08/07 职场文书
放假通知怎么写
2015/08/18 职场文书
MySQL导致索引失效的几种情况
2022/06/25 MySQL
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS