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妙用之编码的转换详解
Apr 21 Python
python中MethodType方法介绍与使用示例
Aug 03 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
Python生成一个迭代器的实操方法
Jun 18 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
python读取与处理netcdf数据方式
Feb 14 Python
Python实现寻找回文数字过程解析
Jun 09 Python
python单元测试框架pytest的使用示例
Oct 07 Python
关于python中remove的一些坑小结
Jan 04 Python
Python实现生活常识解答机器人
Jun 28 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函数
2008/10/03 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
node.js使用nodemailer发送邮件实例
2014/03/10 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
python如何重载模块实例解析
2018/01/25 Python
解决Spyder中图片显示太小的问题
2018/04/27 Python
Python3.6简单反射操作示例
2018/06/14 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
Python几种常见算法汇总
2020/06/02 Python
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
护理自荐信
2013/10/22 职场文书
高一物理教学反思
2014/01/24 职场文书
人力资源职位说明书
2014/07/29 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
2015年企业新年寄语
2014/12/08 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书