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写的一个定时重跑获取数据库数据
Dec 28 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
python机器学习理论与实战(四)逻辑回归
Jan 19 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
如何使用Python实现斐波那契数列
Jul 02 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
Python爬取腾讯视频评论的思路详解
Dec 19 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 Python
python中time、datetime模块的使用
Dec 14 Python
python 基于opencv去除图片阴影
Jan 26 Python
pytorch 中forward 的用法与解释说明
Feb 26 Python
pytorch常用数据类型所占字节数对照表一览
May 17 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.MVC的模板标签系统(一)
2006/09/05 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
php魔术变量用法实例详解
2014/11/13 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
一段实时更新的时间代码
2006/07/07 Javascript
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
Python全局变量操作详解
2015/04/14 Python
python生成验证码图片代码分享
2016/01/28 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
python调用接口的4种方式代码实例
2019/11/19 Python
python ETL工具 pyetl
2020/06/07 Python
python中取绝对值简单方法总结
2020/07/24 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
个人自我剖析材料
2014/09/30 职场文书
律师函格式范本
2015/05/27 职场文书
升学宴家长致辞
2015/07/27 职场文书
2016年元旦致辞
2015/08/01 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书