网络编程
位置:首页>> 网络编程>> Python编程>> python 爬虫出现403禁止访问错误详解

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

作者:完美风暴4  发布时间:2023-11-13 06:53:24 

标签:python,爬虫解决,403,禁止访问

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

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

urllib2模块是属于一个进阶的爬虫抓取模块,有非常多的方法,比方说连接url=//www.jb51.net/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","//www.jb51.net/")

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

然后


html=urllib2.urlopen(req)

print html.read()

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

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


#-*-coding:utf-8-*-

import urllib2
import random

url="//www.jb51.net/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","//www.jb51.net/")
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访问的信息。

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

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

来源:http://blog.csdn.net/jsqfengbao/article/details/44594985

0
投稿

猜你喜欢

  • 浏览器的出现互联网的出现是人类信息交流方式的一次划时代的革命,在这场革命中有两个技术对互联网的发展起到了决定性的作用:一个技术带来的人类信息
  • insert into testtable(recordnumber,currentdate) values (i,sysdate); pr
  • 本篇博文主要讲解Python爬虫实例,重点包括爬虫技术架构,组成爬虫的关键模块:URL管理器、HTML下载器和HTML解析器。爬虫简单架构程
  • 随着十几年前“用户体验”这一概念的提出,“用户研究”也逐渐发展成为一个新兴的行业。那么,“用户研究”究竟包括哪些工作内容,在企业中如何开展,
  • 又忙忙碌碌的的过了一个月,但都在瞎忙,忙得没有一点效率也没有一点价值。忙完之后静下来我就在想,这种情况要持续到什么时候是个头啊~~~网站是一
  • 1 基本概念1.1 命名空间 (namespace)命名空间是变量名到对象的映射(name -> obj)。目前大多数的命名空间以类似
  • 从业这几年,自己写过的和帮人参谋的所谓“设计规范”不少了,这个东西大概在中国的决策层眼里是这么回事儿 - 一帮农民在一块田里种粮食,起先天气
  • 惊现!表面下的隐藏信息——浅谈信息可视化1910年,病卧床上的魏格那(德国气象学家,以“大陆漂移学说”闻名),无意地注视着墙上的世界地图……
  • 栅格就是你对页面版式的规划你日常所见的许多页面都有栅格存在。你可能注意不到,但它确实存在,并且支撑着设计内容,建立整体的架构,引导着页面的元
  • 给内存和cpu使用量设置限制在linux系统中,使用Python对内存和cpu使用量设置限制需要通过resource模块来完成。resour
  • 前言python类与实例的方法的调用中觉得云里雾里,思考之后将自己的想法记录下,一来加深自己理解,巩固自己记忆,而来帮助一些想要学习pyth
  • Django带来了一个高级的聚合生成框架,它使得创建RSS和Atom feeds变得非常容易。什么是RSS? 什么是Atom?RSS和Ato
  • 可以使用 Application 对象在给定的应用程序的所有用户之间共享信息。基于 ASP 的应用程序同所有的 .asp 文件一样在一个虚拟
  • 因为工作原因,需要定期清理某个文件夹下面创建时间超过1年的所有文件,所以今天集中学习了一下Python对于本地文件及文件夹的操作。网上 这篇
  • 平常的开发过程中不免遇到需要把model转成字典的需求,尤其是现在流行前后端分离架构,Json格式几乎成了前后端之间数据交换的标准,这种mo
  • Sun公司和Zmanda在3月18号声称他们正在一起合作,为MySQL Enterprise用户交付一种全面、全局数据备份与恢复解决方案。现
  • 本文实例讲述了Python基于递归实现电话号码映射功能。分享给大家供大家参考,具体如下:问题电话按键上面的每个数字都对应着几个字母,如果按下
  • 今天在群里,熊猫君提议整理一个帖子,一方面为初学者提供一个入门指南,另一方面也象借此和已经在从事这个行业进行一点交流。下面是我从事这个行当多
  • 前言闲来无聊,写了一个爬虫程序获取百度疫情数据。申明一下,研究而已。而且页面应该会进程做反爬处理,可能需要调整对应xpath。Github仓
  • 瞬间设计是什么?良好的用户体验,全在于那些完美的瞬间。在第一个瞬间,假设当一位用户从购物搜索结果页面跳转到某个店铺的时候,他此刻可能是想看看
手机版 网络编程 asp之家 www.aspxhome.com