2 bsxz 94 bsxz_94 于 2016.04.18 00:32 提问

python爬虫,遇到403 forbidden,求助。
 # -*- coding: utf-8 -*-
import re
import sys
import requests
reload(sys)
sys.setdefaultencoding("utf-8")

if __name__ == '__main__':
    url = 'https://movie.douban.com/subject/1433330/photos?type=W'
    # 获取网页源码
    html = requests.get(url)

    # 抓每个图片链接
    pic_url = re.findall('<img src="https://(.*?)" />', html.text, re.S)  #此链接为预览链接
    i = 0
    for each in pic_url:
        raw = re.sub('thumb','raw',each,re.S)    //将预览链接中的thumb替换成raw,便成了高清图片链接
        print 'now download..'+'https://'+raw
        pic = requests.get('https://'+raw)
        f = open('hp\\'+str(i)+'.jpg','wb')
        f.write(pic.content)
        f.close()
        i += 1

刚开始学爬虫,爬豆瓣电影的壁纸练手。现在程序可以跑下来,不返回错,但是下载的图片是失败的,response 返回 403 forbidden。

我这样想问题的原因对吗?

因为我想下高清的,但是豆瓣查看高清壁纸前,需要登录,但我的程序是没有登录的,所以出现403是吗?所以我得模拟登陆是吗?

刚注册,木有悬赏币。。谢谢

5个回答

CSDNXIAOD
CSDNXIAOD   2016.04.18 00:42

微软 403 Forbidden
403 forbidden
403 Forbidden
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq_26225295
qq_26225295   2016.04.18 01:40

之前做过很多爬虫处理,其实你要懂,不是每个网站都那么好爬虫的。

对方:例如豆瓣为了防止访问量过大,服务器压力的承受,所以就啪啪啪整个403给你(服务器理解客户的请求,但拒绝处理它)。

他给你返回403,就是告诉你一种状态,根据他告诉你的态度,你作为男朋友的是不是应该改改自己的脾气。例如,对方发现你没有加header,对方发现你Cookies不对,或者是发现你的访问速度过快,所以就直接block你了。

很多这样衍生的问题,作为一个聪明的Crawler,你应该知道怎么爬对方的东西,才让对方服务器把你判断为人,而不是爬虫程序。

总之一句,根据反馈的错误信息,去思考应该怎么处理问题。这里没有给出详细的答案,但是你可以尝试着去理解豆瓣的block机制。

oyljerry
oyljerry   Ds   Rxr 2016.04.18 11:35

403就是告诉你没有权限,这个服务器做了判断,需要对用户身份做验证,一般会通过cookie等,所以你没有登陆就没办法访问。

qq_23214785
qq_23214785   2016.05.25 12:53

你可以使用代理ip,可以使用神箭手云爬虫,自带ip代理的爬虫。

qq_16755563
qq_16755563   2017.05.16 17:56
alert(1)
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!