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编程实现语音控制电脑
Apr 01 Python
ansible作为python模块库使用的方法实例
Jan 17 Python
Python实现简单的获取图片爬虫功能示例
Jul 12 Python
python指定写入文件时的编码格式方法
Jun 07 Python
pandas.cut具体使用总结
Jun 24 Python
Python 实现交换矩阵的行示例
Jun 26 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
python numpy 矩阵堆叠实例
Jan 17 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 12 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
May 28 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中计算时间差的几种方法
2009/12/31 PHP
ThinkPHP采用模块和操作分析
2011/04/18 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
类似框架的js代码
2006/11/09 Javascript
JavaScript 撑出页面文字换行
2009/06/15 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
用JS实现选项卡
2020/03/23 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python 字符串定义
2009/09/25 Python
python实现汉诺塔递归算法经典案例
2021/03/01 Python
浅析Git版本控制器使用
2017/12/10 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
详解python tkinter模块安装过程
2020/01/06 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
中级会计职业生涯规划范文
2014/01/16 职场文书
高中运动会广播稿
2014/09/16 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
box-shadow单边阴影的实现
2023/05/21 HTML / CSS