鱼C论坛

 找回密码
 立即注册
查看: 1451|回复: 2

[已解决]参考各路写了一个爬虫的代码,然而我怎么改都报AttributeError

[复制链接]
发表于 2020-7-21 16:42:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码如下:
import base64
import urllib.request
import os
import time
import re

def get_pageurl(page,nums):
    url_list = []
    for i in range(nums):
        temp1 = time.strftime('%Y%mYd',time.gmtime()) #获取当天的日期
        temp2 = temp1 + str(int(page)-i) #获取页数
        temp3 = base64.b64encode(temp2.encode()).decode() #base64转码
        url = 'http://jandan.com/ooxx/' + temp3 + '#comments'
        url_list.append(url)

    return url_list

def get_html(url):
    # 伪装电脑查询
    req = urllib.request.Request(url)
    req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0")
    response = urllib.requset.urlopen(req)
    html = response.read()
    
    return html


def get_img(html):
    html = html.decode('utf-8')
    img_list = [] #创建列表用来保存图片地址

    a = r'<img src="([^]+\.(jpg|gif))"' #使用正则表达式获取图片地址
    img = re.findall(a,html)
    
    #将每个地址塞入列表
    for each in img:
        img_list.append(each)

    return img_list

def save_imgs(img_list):
    for each in img_list:
        img = get_html(each)
        filename = each.split('/')[-1]
        with open(filename,'wb') as f:
            imge  = open_url(each)
            f.write(imge)
        

def download_mm():
    os.mkdir('mmphoto')
    os.chdir('mmphoto')
    '''
    x = int(input('请输入开始页码:'))
    y = int(input('请输入下载多少页的图片:'))
    '''
    url_list = get_pageurl(130,2)
    print(url_list)
    for each in url_list:
        html = get_html(each)
        img_list = get_img(html)
        save_imgs(img_list)
        time.sleep(2)
        print(each)

if __name__ == '__main__':
    download_mm()

报错如下:
Traceback (most recent call last):
  File "E:\新建文件夹\爬取煎蛋网妹子图.py", line 67, in <module>
    download_mm()
  File "E:\新建文件夹\爬取煎蛋网妹子图.py", line 60, in download_mm
    html = get_html(each)
  File "E:\新建文件夹\爬取煎蛋网妹子图.py", line 22, in get_html
    response = urllib.requset.urlopen(req)
AttributeError: module 'urllib' has no attribute 'requset'

求大佬提出下问题所在
最佳答案
2020-7-21 16:48:02


是 request 不是 requset

而且你代码有个  open_url 不知道从何而来,代码中没有定义这个函数呀

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-21 16:48:02 | 显示全部楼层    本楼为最佳答案   


是 request 不是 requset

而且你代码有个  open_url 不知道从何而来,代码中没有定义这个函数呀

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-21 16:49:06 | 显示全部楼层
本帖最后由 xiaosi4081 于 2020-7-21 16:53 编辑
import base64
import urllib.request
import os
import time
import re

def get_pageurl(page,nums):
    url_list = []
    for i in range(nums):
        temp1 = time.strftime('%Y%mYd',time.gmtime()) #获取当天的日期
        temp2 = temp1 + str(int(page)-i) #获取页数
        temp3 = base64.b64encode(temp2.encode()).decode() #base64转码
        url = 'http://jandan.com/ooxx/' + temp3 + '#comments'
        url_list.append(url)

    return url_list

def get_html(url):
    # 伪装电脑查询
    req = urllib.request.Request(url)
    req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0")
    response = urllib.request.urlopen(req)
    html = response.read()
    
    return html


def get_img(html):
    html = html.decode('utf-8')
    img_list = [] #创建列表用来保存图片地址

    a = r'<img src="([^]+\.(jpg|gif))"' #使用正则表达式获取图片地址
    img = re.findall(a,html)
    
    #将每个地址塞入列表
    for each in img:
        img_list.append(each)

    return img_list

def save_imgs(img_list):
    for each in img_list:
        img = get_html(each)
        filename = each.split('/')[-1]
        with open(filename,'wb') as f:
            imge  = open_url(each)
            f.write(imge)
        

def download_mm():
    os.mkdir('mmphoto')
    os.chdir('mmphoto')
    '''
    x = int(input('请输入开始页码:'))
    y = int(input('请输入下载多少页的图片:'))
    '''
    url_list = get_pageurl(130,2)
    print(url_list)
    for each in url_list:
        html = get_html(each)
        img_list = get_img(html)
        save_imgs(img_list)
        time.sleep(2)
        print(each)

if __name__ == '__main__':
    download_mm()

还有,你这个open_url从何处来?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 20:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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