鱼C论坛

 找回密码
 立即注册
查看: 3072|回复: 6

求救,urllib.request下载ooxx的问题

[复制链接]
发表于 2016-5-14 17:20:31 | 显示全部楼层 |阅读模式
5鱼币
永远的403error.png 403403.png
在零基础入门学习python课程的“网络爬虫XXOO”课时中,出现了下载妹子图的教学案例。
我认真反复看懂后,自己敲出了这一段代码,却无论如何都报http 403 Forbidden错误。
同样的代码,小甲鱼在课程视频里就可以运行成功,总不至于是后来目标网站增加了ip访问频率的监测吧。
请各位鱼油相救,究竟为什么这段代码会引发这个报错。
在线急等

最佳答案

查看完整内容

403目标服务器禁止访问,这个方法爬煎蛋已经不行了,去爬贴吧的保证可以
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-14 17:20:32 | 显示全部楼层
403目标服务器禁止访问,这个方法爬煎蛋已经不行了,去爬贴吧的保证可以
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-14 17:21:53 | 显示全部楼层
求求各位路过的好心人,可怜可怜我这个彩笔吧。求救求救
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-14 17:43:03 | 显示全部楼层
艾斯不知火 发表于 2016-5-14 17:39
403目标服务器禁止访问,这个方法爬煎蛋已经不行了,去爬贴吧的保证可以

您是说果然对方检测了ip访问次数吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-14 17:51:20 | 显示全部楼层
import urllib.request
import os
import re
def url_open(url):
    req=urllib.request.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36')
    response=urllib.request.urlopen(req)
    html=response.read()

    print(url)
    return html

def get_page(url):
    html=url_open(url).decode('utf-8')
    p=r'共<span class="red">(.+)</span>页'
   
    patten=re.compile(p)
    pagenum=patten.findall(html)

    print (pagenum)
   

    return pagenum[0]
   

def find_imgs(pageurl):
    html=url_open(pageurl).decode('utf-8')

   
    imageaddress=re.findall('img.+?class="BDE_Image".+?src="([^"]+\.jpg).+?>',html)
   


    for each in imageaddress:
        filename=each.split('//')[-1]
        print(filename)

    return imageaddress

def save_imgs(folder,imageaddress):
    for each in imageaddress:
        filename=each.split('/')[-1]
        urllib.request.urlretrieve(each,filename,None)
def download(folder='tiebapic3'):

    path = os.getcwd()
    new_path = os.path.join(path,folder)
    if not os.path.exists(new_path):   
        os.mkdir(folder)
    os.chdir(folder)
   
    url="http://tieba.baidu.com/p/3544335017"

    pagenum=int(get_page(url))
    print(pagenum)
   
    for i in range(1,pagenum+1):
        
        pageurl=url+'?pn='+str(i)
        
        imageaddress=find_imgs(pageurl)
        save_imgs(folder,imageaddress)

        
        
if __name__ == '__main__':
    download()



这个是我看完视频写的,保证好用,请保存成新py文件,在IDLEX运行
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-15 01:11:38 | 显示全部楼层
CasUal000 发表于 2016-5-14 17:43
您是说果然对方检测了ip访问次数吗?

是啊,前两天我也试过,怎么弄都不行,煎蛋被爬都多了,施加了ip频率限制机制,有的人用代理ip好像成功过
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-16 14:36:34 | 显示全部楼层
估计跟https 有关造成的 还没找到解决方法 讲课的时候图片还是http
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-21 01:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表