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 28 Python
简单介绍Python中的几种数据类型
Jan 02 Python
python目录与文件名操作例子
Aug 28 Python
Python中的浮点数原理与运算分析
Oct 12 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
Python简单处理坐标排序问题示例
Jul 11 Python
Python-openCV开运算实例
Jul 05 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
Python基础之操作MySQL数据库
May 06 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
Apr 12 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/11/09 PHP
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
Python实现处理管道的方法
2015/06/04 Python
Python实现图像几何变换
2015/07/06 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
django 修改server端口号的方法
2018/05/14 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
华为C++笔试题
2014/08/05 面试题
医学类导师推荐信范文
2013/11/19 职场文书
公证委托书模板
2014/04/03 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
七个非常实用的Python工具包总结
2021/06/15 Python