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 tensorflow学习之识别单张图片的实现的示例
Feb 09 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
python批量修改文件夹及其子文件夹下的文件内容
Mar 15 Python
Django框架基础模板标签与filter使用方法详解
Jul 23 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
Feb 18 Python
Django模板标签{% for %}循环,获取制定条数据实例
May 14 Python
Keras在训练期间可视化训练误差和测试误差实例
Jun 16 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
python生成word合同的实例方法
Jan 12 Python
Python基础之元组与文件知识总结
May 19 Python
Python 绘制多因子柱状图
May 11 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缓存类完整实例
2014/07/26 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
js实现不重复导入的方法
2016/03/02 Javascript
AngularJS基础 ng-mousemove 指令简单示例
2016/08/02 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python机器学习之决策树算法
2017/12/22 Python
Python入门必须知道的11个知识点
2018/03/21 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
django框架F&Q 聚合与分组操作示例
2019/12/12 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
高中自我鉴定范文
2013/11/03 职场文书
产品促销活动策划书
2014/01/15 职场文书
加强作风建设工作总结
2014/10/23 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
英文自荐信范文
2015/03/25 职场文书
大学生团日活动总结
2015/05/06 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
SQL 聚合、分组和排序
2021/11/11 MySQL
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android