波大大12138 发表于 2020-7-6 11:32:30

代码问题

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
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)
      else:
            b=a+9
      a=html.find('img src=',b)
    for each inimg_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()

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

波大大12138 发表于 2020-7-7 08:51:39

@Twilight6

Twilight6 发表于 2020-7-7 09:04:35

波大大12138 发表于 2020-7-7 08:51
@Twilight6




打错字的参数:
img_addrs.append(html) 应该改成 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) 这里的参数 多传了一个 , 你定义的参数只有一个


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


Twilight6 发表于 2020-7-7 09:07:56

波大大12138 发表于 2020-7-7 08:51
@Twilight6



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

很多新人拿这个练手的~

波大大12138 发表于 2020-7-7 09:08:33

Twilight6 发表于 2020-7-7 09:04
打错字的参数:
img_addrs.append(html) 应该改成 img_adds
for each in img_ ...

好的,顺便再问一下看评论说小甲鱼的视频是13年的了,现在只需要看到52讲之前的基础部分,剩下的要过时了需要去专攻研究的方向是吗

Twilight6 发表于 2020-7-7 09:10:45

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


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


Tkinter 和 pygame 也不会太过时呀

陈尚涵 发表于 2020-7-7 10:42:08

错误确实有点多,你抄的仔细一点啊
页: [1]
查看完整版本: 代码问题