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中用Spark模块的使用教程
Apr 13 Python
深入理解NumPy简明教程---数组3(组合)
Dec 17 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 Python
python+mysql实现个人论文管理系统
Oct 25 Python
sklearn-SVC实现与类参数详解
Dec 10 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
Python实现打包成库供别的模块调用
Jul 13 Python
Python 微信公众号文章爬取的示例代码
Nov 30 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 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
将OICQ数据转成MYSQL数据
2006/10/09 PHP
用PHP的ob_start() 控制您的浏览器cache
2009/08/03 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
js中if语句的几种优化代码写法
2011/03/12 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
python实现simhash算法实例
2014/04/25 Python
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
python批量同步web服务器代码核心程序
2014/09/01 Python
Django 实现下载文件功能的示例
2018/03/06 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
python实现名片管理系统项目
2019/04/26 Python
python几种常用功能实现代码实例
2019/12/25 Python
tensorflow 环境变量设置方式
2020/02/06 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
幼儿教师个人求职信范文
2013/09/21 职场文书
高二物理教学反思
2014/02/08 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
职位证明模板
2015/06/23 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
工作一年自我鉴定
2019/06/20 职场文书