python 爬虫出现403禁止访问错误详解


Posted in Python onMarch 11, 2017

python 爬虫解决403禁止访问错误

在Python写爬虫的时候,html.getcode()会遇到403禁止访问的问题,这是网站对自动化爬虫的禁止,要解决这个问题,需要用到python的模块urllib2模块

urllib2模块是属于一个进阶的爬虫抓取模块,有非常多的方法,比方说连接url=//3water.com/qysh123对于这个连接就有可能出现403禁止访问的问题

解决这个问题,需要以下几步骤:

<span style="font-size:18px;">req = urllib2.Request(url) 
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36") 
req.add_header("GET",url) 
req.add_header("Host","blog.csdn.net") 
req.add_header("Referer","//3water.com/")

其中User-Agent是浏览器特有的属性,通过浏览器查看源代码就可以查看到

然后

html=urllib2.urlopen(req)


print html.read()

就可以把网页代码全部下载下来,而没有了403禁止访问的问题。

对于以上问题,可以封装成函数,供以后调用方便使用,具体代码:

#-*-coding:utf-8-*- 
 
import urllib2 
import random 
 
url="//3water.com/article/1.htm" 
 
my_headers=["Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36", 
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36", 
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0" 
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14", 
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)" 
  
] 
def get_content(url,headers): 
 ''''' 
 @获取403禁止访问的网页 
 ''' 
 randdom_header=random.choice(headers) 
 
 req=urllib2.Request(url) 
 req.add_header("User-Agent",randdom_header) 
 req.add_header("Host","blog.csdn.net") 
 req.add_header("Referer","//3water.com/") 
 req.add_header("GET",url) 
 
 content=urllib2.urlopen(req).read() 
 return content 
 
print get_content(url,my_headers)

其中用到了random随机函数,自动获取已经写好的浏览器类型的User-Agent信息,在自定义函数中需要写出自己的Host,Referer,GET信息等,解决这几个问题,就可以顺利访问了,不再出现403访问的信息。

当然如果访问频率过快的话,有些网站还是会过滤的,解决这个需要用到代理IP的方法。。。具体的自己解决

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
利用python操作SQLite数据库及文件操作详解
Sep 22 Python
python实现多线程行情抓取工具的方法
Feb 28 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
Python并发:多线程与多进程的详解
Jan 24 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
pyqt 实现在Widgets中显示图片和文字的方法
Jun 13 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
Jun 24 Python
python重要函数eval多种用法解析
Jan 14 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
Python字节单位转换(将字节转换为K M G T)
Mar 02 Python
Python读取文件夹下的所有文件实例代码
Apr 02 Python
Python如何读取MySQL数据库表数据
Mar 11 #Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 #Python
Python搭建HTTP服务器和FTP服务器
Mar 09 #Python
开源Web应用框架Django图文教程
Mar 09 #Python
Python运算符重载详解及实例代码
Mar 07 #Python
利用Python中的pandas库对cdn日志进行分析详解
Mar 07 #Python
python下os模块强大的重命名方法renames详解
Mar 07 #Python
You might like
php5.2.0内存管理改进
2007/01/22 PHP
PHP 分页类(模仿google)-面试题目解答
2009/09/13 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
php版微信公众平台之微信网页登陆授权示例
2016/09/23 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
JavaScript toFixed() 方法
2010/04/15 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
js 利用image对象实现图片的预加载提高访问速度
2013/03/29 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
javascript的this关键字详解
2019/05/20 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
Python装饰器用法实例总结
2018/02/07 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
Python Django view 两种return的实现方式
2020/03/16 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
super()与this()的区别
2016/01/17 面试题
新闻系毕业生推荐信
2013/11/16 职场文书
单位门卫岗位职责
2013/12/20 职场文书
优秀护士先进事迹
2014/05/08 职场文书
罗马假日观后感
2015/06/08 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android