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时间整形转标准格式的示例分享
Feb 14 Python
python回溯法实现数组全排列输出实例分析
Mar 17 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 Python
python爬虫获取百度首页内容教学
Dec 23 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
python之随机数函数的实现示例
Dec 30 Python
如何理解python接口自动化之logging日志模块
Jun 15 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音乐采集(部分代码)
2007/02/14 PHP
PHP处理excel cvs表格的方法实例介绍
2013/05/13 PHP
php导出word格式数据的代码实例
2013/11/25 PHP
学习PHP session的传递方式
2016/06/15 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
Python实现简易端口扫描器代码实例
2017/03/15 Python
python距离测量的方法
2018/03/06 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
Python常用的json标准库
2019/02/19 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
.NET remoting的两种通道是什么
2016/05/31 面试题
高中生职业规划范文
2014/03/09 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
python 实现体质指数BMI计算
2021/05/26 Python
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL