鱼C论坛

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

代码问题

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

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

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

x
  1. import urllib.request#访问网页必定要引入的模块
  2. import os
  3. import random
  4. def url_open(url):
  5.     req=urllib.request.Request(url)
  6.     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')
  7.     proxies=['119.6.144.70:81','111.1.36.9:80','203:144:144:162:8080']
  8.     proxy=random.choice(proxies)
  9.     proxy_support=urllib.request.ProxyHandler({'http':proxy})
  10.     opener=urllib.request.build_opener(proxy_support)
  11.     urllib.request.install_opener(opener)
  12.     response=urllib.request.urlopen(url)
  13.     html=response.read()
  14.     print(url)
  15.     return html
  16. def get_page(url):
  17.     html=url_open(url).decode('utf-8')

  18.     a=html.find('current.comment-page')+23
  19.     b=html.find(']',a)
  20.     return html[a:b]
  21. def find_imgs(url):
  22.     html=url_open(url).decode('utf-8')
  23.     img_adds=[]
  24.     a=html.find('img src=')
  25.     while a!=-1:
  26.         b=html.find('.jpg',a,a+255)
  27.         if b!=-1:
  28.             img_addrs.append(html[a+9:b+4])
  29.         else:
  30.             b=a+9
  31.         a=html.find('img src=',b)
  32.     for each in  img_addrs:
  33.         print(each)
  34.         
  35. def save_imgs(img_addrs):
  36.     for each in img_addrs:
  37.         filename=each.split('/'),[-1]
  38.         with open (filename,'wb') as f:
  39.             omg=url_open(each)
  40.             f.write(img)

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

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

  46.     for i in range(pages):
  47.         page_num-=1
  48.         page_url=url+'page'+str(page_num)+'#comments'
  49.         img_addrs=find_imgs(page_url)
  50.         save_imgs(folder,img_addrs)
  51. if __name__=='__main__':
  52.     download_mm()
复制代码


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

使用道具 举报

 楼主| 发表于 2020-7-7 08:51:39 | 显示全部楼层
小甲鱼最新课程 -> https://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) 这里的参数 多传了一个 , 你定义的参数只有一个



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


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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



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

很多新人拿这个练手的~
小甲鱼最新课程 -> https://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讲之前的基础部分,剩下的要过时了需要去专攻研究的方向是吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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



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


Tkinter 和 pygame 也不会太过时呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 10:42:08 | 显示全部楼层
错误确实有点多,你抄的仔细一点啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 05:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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