鱼C论坛

 找回密码
 立即注册
查看: 905|回复: 3

怎么执行完 什么都没有 啊 有人知道吗

[复制链接]
发表于 2019-8-8 12:24:19 | 显示全部楼层 |阅读模式

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

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

x
  1. import requests
  2. import re
  3. import urllib.request
  4. def getpage(url):
  5.         get_open = requests.get(url)
  6.         html = get_open.content.decode('utf-8')
  7.         htmllist = []
  8.         p=r'<a href="[^"]+/.html'
  9.         for i in re.findall(p,html):
  10.                 htmllist.append(i)
  11.         return htmllist
  12. def geturl(url):
  13.         jpglist = []
  14.         headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
  15.         for i in url:
  16.                 baseurl = 'http://mzitu.92game.net'+i
  17.                 html2 = requests.get(baseurl,headers=headers)
  18.                 html3 = html2.content.decode('utf-8')
  19.                 p = r'<img src="(http://file.92game.net/mzitu/d/file/bigpic/.+/.jpg)'
  20.                 n = re.findall(p,html3,re.S)
  21.                 jpglist.append(n)
  22.         return jpglist

  23. def downpic(url):
  24.         for each in url:
  25.                 filename = each.split('/')[-2]
  26.                 urllib.request.urlretrieve(each,filename)
  27. if __name__=='__main__':
  28.         url = 'http://mzitu.92game.net/mm/index_2.html'
  29.         geturl(getpage(url))
  30.         downpic(geturl(getpage(url)))
复制代码

执行完后    [Finished in 0.9s]    就显示这个   啥都没有 图片呢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-8 14:43:56 | 显示全部楼层
有报错啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-8 15:33:23 | 显示全部楼层
小伙子,怎么还是你啊昨天我还跟你说了,你最后一个downpic()的函数有问题,算了,送佛送到西。

  1. import requests
  2. from lxml import etree
  3. import urllib.request
  4. import os

  5. headers = {
  6.     'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}


  7. def get_detail_url():
  8.     '''
  9.     用于获取详情页的url列表
  10.     :return: 详情页的url列表
  11.     '''
  12.     base_url = 'http://mzitu.92game.net/mm/index_2.html'
  13.     selector = etree.HTML(requests.get(base_url,headers=headers).content)
  14.     detail_urls = []
  15.     for i in selector.xpath('//div[@class="postlist"]/ul/li/a/@href'):
  16.         detail_urls.append(i)
  17.     return detail_urls


  18. def get_image_urls(urls):
  19.     '''
  20.     请求详情页url列表,解析出图片的url地址
  21.     :param urls: 详情页url列表
  22.     :return: 图片的url列表
  23.     '''
  24.     image_urls = []

  25.     for detail_url in urls:
  26.         tar_url = 'http://mzitu.92game.net' + detail_url
  27.         content = etree.HTML(requests.get(tar_url, headers=headers).content)
  28.         image_url = content.xpath('//div[@class="main-image"]/p/a/img/@src')
  29.         image_urls.append(image_url)
  30.     return image_urls


  31. def down_pic(image_urls):
  32.     path = os.getcwd() + "\" + "images"
  33.     if not os.path.exists(path):
  34.         os.mkdir(path)
  35.     for image_url in image_urls:
  36.         filename = path + "\" + image_url[0].split('/')[-1]
  37.         urllib.request.urlretrieve(image_url[0], filename)



  38. if __name__ == '__main__':
  39.     detail_urls = get_detail_url()
  40.     image_urls = get_image_urls(urls=detail_urls)
  41.     #print(image_urls)
  42.     down_pic(image_urls)
复制代码


话说我上班的时候把这个运行了,妹子图下载了,我都不敢点开,万一是尺度大的,我怕是职业生涯也没了,哈哈。

你的代码不能运行重点在于最后那个urllib.request.urlretrieve(each,filename),filename是需要判断的,先指定一个文件路径,比如说D://meizitu//,然后再把图片的url地址分割下,留下xxx.jpg,然后组合起来,也就是说这个filename类似于D://meizitu//1.jpg之类的绝对地址才行。

你慢慢捋思路吧,熟悉了就好了,加油。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-8 16:19:48 | 显示全部楼层
好像你没设置图片文件保存在哪里吧

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-17 13:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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