鱼C论坛

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

代码问题

[复制链接]
发表于 2020-7-6 11:32:30 | 显示全部楼层 |阅读模式

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

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

x
import urllib.request#访问网页必定要引入的模块
import os
import random
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/69.0.3947.100 Safari/537.36')
    proxies=['119.6.144.70:81','111.1.36.9:80','203:144:144:162:8080']
    proxy=random.choice(proxies)
    proxy_support=urllib.request.ProxyHandler({'http':proxy})
    opener=urllib.request.build_opener(proxy_support)
    urllib.request.install_opener(opener)
    response=urllib.request.urlopen(url)
    html=response.read()
    print(url)
    return html
def get_page(url):
    html=url_open(url).decode('utf-8')

    a=html.find('current.comment-page')+23
    b=html.find(']',a)
    return html[a:b]
def find_imgs(url):
    html=url_open(url).decode('utf-8')
    img_adds=[]
    a=html.find('img src=')
    while a!=-1:
        b=html.find('.jpg',a,a+255)
        if b!=-1:
            img_addrs.append(html[a+9:b+4])
        else:
            b=a+9
        a=html.find('img src=',b)
    for each in  img_addrs:
        print(each)
        
def save_imgs(img_addrs):
    for each in img_addrs:
        filename=each.split('/'),[-1]
        with open (filename,'wb') as f:
            omg=url_open(each)
            f.write(img)

def download_mm(folder='ooxx',page=10):
    os.mkdir(folder)
    os.chdir(folder)

    url="http://jandan.net/ooxx/"
    page_num=int(get_page(url))

    for i in range(pages):
        page_num-=1
        page_url=url+'page'+str(page_num)+'#comments'
        img_addrs=find_imgs(page_url)
        save_imgs(folder,img_addrs)
if __name__=='__main__':
    download_mm()

这个是小甲鱼爬妹子图片的上课的代码,我照着敲得,显示错误有问题,求帮忙修改一下代码?修改有问题的地方麻烦特殊标记一下好让我知道哪里有问题谢谢,错误的原因最好也说下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-7 08:51:39 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 09:04:35 | 显示全部楼层




打错字的参数:
img_addrs.append(html[a + 9:b + 4]) 应该改成 img_adds

for each in img_addrs: 应该改成 img_adds

omg = url_open(each)
f.write(img) 应该把 omg 改成 img 吧

page_num = int(get_page(url))
for i in range(pages):   应该把 pages 改成 page_num 吧?

img_adds = find_imgs(page_url) 你调用 find_imgs 函数,而这个函数你没有设置返回值所以返回的永远是None,即 img_adds 返回的永远是 None

save_imgs(folder, img_addrs) 这里的参数 多传了一个 , 你定义的参数只有一个



错误很多,而且现在煎蛋网也有反爬了,你不能直接拿甲鱼哥几年前的代码来尝试,肯定爬不到你想要的


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

使用道具 举报

发表于 2020-7-7 09:07:56 | 显示全部楼层



你换个网站爬爬吧,建议你去爬爬 https://www.mzitu.com/  

很多新人拿这个练手的~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 09:08:33 | 显示全部楼层
Twilight6 发表于 2020-7-7 09:04
打错字的参数:
img_addrs.append(html[a + 9:b + 4]) 应该改成 img_adds

for each in img_ ...

好的,顺便再问一下看评论说小甲鱼的视频是13年的了,现在只需要看到52讲之前的基础部分,剩下的要过时了需要去专攻研究的方向是吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 09:10:45 | 显示全部楼层
波大大12138 发表于 2020-7-7 09:08
好的,顺便再问一下看评论说小甲鱼的视频是13年的了,现在只需要看到52讲之前的基础部分,剩下的要过时了 ...



这是看你个人,后面的也只有爬虫比较过时,不过爬虫过时很正常,你今天爬爬说定一个星期后网站源码就变了,但是套路还是那个套路


Tkinter 和 pygame 也不会太过时呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 10:42:08 | 显示全部楼层
错误确实有点多,你抄的仔细一点啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 03:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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