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 getopt 参数处理小示例
Jun 09 Python
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
Dec 06 Python
利用Python中的输入和输出功能进行读取和写入的教程
Apr 14 Python
python版本坑:md5例子(python2与python3中md5区别)
Jun 20 Python
Django与JS交互的示例代码
Aug 23 Python
django 2.0更新的10条注意事项总结
Jan 05 Python
django admin后台添加导出excel功能示例代码
May 15 Python
利用python生成照片墙的示例代码
Apr 09 Python
详解Python中namedtuple的使用
Apr 27 Python
几款Python编译器比较与推荐(小结)
Oct 15 Python
Python基础之hashlib模块详解
May 06 Python
Django框架模板用法详解
Jun 10 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
第五节--克隆
2006/11/16 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
js验证上传图片的方法
2015/05/12 Javascript
js运动应用实例解析
2015/12/28 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
用python删除java文件头上版权信息的方法
2014/07/31 Python
跟老齐学Python之一个免费的实验室
2014/09/14 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Python连接DB2数据库
2016/08/27 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
python学生信息管理系统实现代码
2019/12/17 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
酒店销售主管岗位职责
2014/01/04 职场文书
个人租房协议书
2014/04/09 职场文书
婚庆答谢词
2015/01/04 职场文书
工作保证书怎么写
2015/02/28 职场文书
大学生入党群众意见书
2015/06/02 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
MySQL系列之十一 日志记录
2021/07/02 MySQL
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis