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开发之for循环操作实例详解
Nov 12 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
Python实现的读写json文件功能示例
Jun 05 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
解决Django连接db遇到的问题
Aug 29 Python
对django layer弹窗组件的使用详解
Aug 31 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
Python流程控制语句的深入讲解
Jun 15 Python
python 如何使用find和find_all爬虫、找文本的实现
Oct 16 Python
Python绘制词云图之可视化神器pyecharts的方法
Feb 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
PHP页面中文乱码分析
2013/10/29 PHP
跟我学Laravel之路由
2014/10/15 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
详解php协程知识点
2018/09/21 PHP
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
python利用ffmpeg进行录制屏幕的方法
2019/01/10 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
Django缓存Cache使用详解
2020/11/30 Python
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
档案管理员岗位职责
2013/12/01 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
项目合作协议书
2014/04/16 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
军事博物馆观后感
2015/06/05 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
微信小程序实现轮播图指示器
2022/06/25 Javascript