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中使用ConfigParser解析ini配置文件实例
Aug 30 Python
详解Python中for循环的使用方法
May 14 Python
python脚本替换指定行实现步骤
Jul 11 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
TensorFlow saver指定变量的存取
Mar 10 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
Oct 21 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
详解python配置虚拟环境
Apr 08 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
python3 循环读取excel文件并写入json操作
Jul 14 Python
Python异常处理机制结构实例解析
Jul 23 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电台频率大全 - 17 湖北省
2020/03/11 无线电
PHP 组件化编程技巧
2009/06/06 PHP
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
取得窗口大小 兼容所有浏览器的js代码
2011/08/09 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
以一段代码为实例快速入门Python2.7
2015/03/31 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
英语演讲稿3分钟
2014/04/29 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
银行自荐信范文
2015/03/25 职场文书