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实现数据图表
Jul 29 Python
Python语言实现将图片转化为html页面
Dec 06 Python
一篇文章快速了解Python的GIL
Jan 12 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
Dec 22 Python
Python3 SSH远程连接服务器的方法示例
Dec 29 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
python Tkinter的图片刷新实例
Jun 14 Python
python实现批量nii文件转换为png图像
Jul 18 Python
python如何将两个txt文件内容合并
Oct 18 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
Nov 08 Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 Python
Python使用graphviz画流程图过程解析
Mar 31 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
php解决约瑟夫环示例
2014/04/09 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
php 的反射详解及示例代码
2016/08/25 PHP
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
python实现定时播放mp3
2015/03/29 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
python set内置函数的具体使用
2019/07/02 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
python实现简单遗传算法
2020/09/18 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
台湾最大网路书店:博客来
2018/03/18 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
小学新学期教师寄语
2014/01/18 职场文书
我读书我快乐演讲稿
2014/05/07 职场文书
售票员岗位职责
2015/02/15 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
困难补助申请报告
2015/05/19 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
css实现左上角飘带效果的完整代码
2022/03/18 HTML / CSS