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访问类中docstring注释的实现方法
May 04 Python
Python Requests 基础入门
Apr 07 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
python字典快速保存于读取的方法
Mar 23 Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 Python
Python数据类型之Dict字典实例详解
May 07 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Python上下文管理器全实例详解
Nov 12 Python
python实现udp聊天窗口
Mar 31 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
Jul 02 Python
python 调整图片亮度的示例
Dec 03 Python
Python编程super应用场景及示例解析
Oct 05 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
PHP合并数组+与array_merge的区别分析
2010/08/01 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
Python正则表达式指南 推荐
2018/10/09 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
美国校园市场:OCM
2017/06/08 全球购物
建筑人员岗位职责
2013/12/25 职场文书
毕业生护理专业个人求职信范文
2014/01/04 职场文书
高中运动会广播稿
2014/01/21 职场文书
创意广告词
2014/03/17 职场文书
中国好声音广告词
2014/03/18 职场文书
C++程序员求职信
2014/05/07 职场文书
主题实践活动总结
2014/05/08 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书
Python内置的数据类型及使用方法
2022/04/13 Python