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

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

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

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

猜你喜欢

  • pytorch如何利用ResNet18进行手写数字识别

    2022-02-07 04:07:26
  • BootStrap tooltip提示框使用小结

    2023-07-02 05:25:25
  • python 实现让字典的value 成为列表

    2022-01-16 00:26:30
  • 页面重构应注意的repaint和reflow

    2011-03-31 17:11:00
  • 基于vue+element实现全局loading过程详解

    2023-07-02 17:01:05
  • 各种语言、服务器301跳转代码全集

    2023-07-23 04:24:45
  • 在子页中隐藏模板页中的div示例代码

    2023-07-23 12:12:28
  • Python Flask异步发送邮件实现方法解析

    2023-08-15 04:29:12
  • python翻译软件实现代码(使用google api完成)

    2023-05-19 17:25:43
  • 使用TensorFlow直接获取处理MNIST数据方式

    2022-12-16 22:35:49
  • OpenCV+Python3.5 简易手势识别的实现

    2022-06-02 18:38:26
  • php ajax异步读取rss文档数据

    2023-10-17 19:59:02
  • MySQL备份与恢复之冷备(1)

    2024-01-26 13:37:50
  • vue中使用props传值的方法

    2024-05-03 15:10:50
  • Php中用PDO查询Mysql来避免SQL注入风险的方法

    2023-07-18 06:37:42
  • python 判断linux进程,并杀死进程的实现方法

    2022-06-24 22:31:54
  • idea连接SQL Server数据库的详细图文教程

    2024-01-14 05:32:54
  • Python+drawpad实现CPU监控小程序

    2022-05-30 19:54:38
  • Python针对给定列表中元素进行翻转操作的方法分析

    2022-04-19 18:37:07
  • pytorch 数据加载性能对比分析

    2022-04-17 04:22:22
  • asp之家 网络编程 m.aspxhome.com