鱼C论坛

 找回密码
 立即注册
查看: 26775|回复: 11

[已解决]爬妹子图 mm131.com失败 求助

[复制链接]
发表于 2019-10-9 01:02:16 | 显示全部楼层 |阅读模式

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

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

x
爬取妹子图
https://www.mm131.net/xinggan/5164.html

爬取到的都是同一张广告图片, 应该是被反爬了
发不了图片2333把图片转码发了


  1. import urllib.request as ur
  2. import os
  3. import random

  4. headers = {}
  5. 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'
  6.    
  7. proxy_ip = [{'http':'125.123.122.52:9999'}, {'http':'61.189.242.243:55484'}, {'http':'120.26.199.103:8118'}, {'http':'117.90.4.17:9000'}, {'http':'125.123.66.53:9999'}, {'http':'125.123.127.188:9999'}, {'http':'180.117.128.145:8118'}, {'http':'183.129.244.16:12154'}]

  8. def get_proxy():
  9.     r = random.randint(0, 7)
  10.     ip = proxy_ip[r]
  11.     proxy_support = ur.ProxyHandler(ip)
  12.     opener = ur.build_opener(proxy_support)
  13.     return opener

  14. def save_pic(pic_link, pic_name, dir_name, head=headers):
  15.     req = ur.Request(url=pic_link, headers=head)
  16.     opener = get_proxy()
  17.     pic_content = opener.open(req).read()
  18.     path = '\\' + dir_name + '\\' + pic_name +'.jpg'
  19.     with open(path, 'wb') as file:
  20.         file.write(pic_content)
  21.     return
  22.    

  23. def get_name(url, head=headers):
  24.     req = ur.Request(url=url, headers=head)
  25.     opener = get_proxy()
  26.     temp = opener.open(req).read().decode('gbk')
  27.     a = temp.find('<div class="content">') + 30
  28.     b = temp.find('</h5>', a)
  29.     name = temp[a:b]
  30.     folder = '\\%s'%name
  31.     if not os.path.exists(folder):
  32.         os.mkdir(folder)
  33.     return name
  34.    
  35. class pic():
  36.     def __init__(self, url, head, name, h=headers):
  37.         self.head = head
  38.         self.url = url.replace(self.head, '')
  39.         self.name = name
  40.         self.page = 1
  41.         self.islast = False
  42.         self.h = h
  43.         
  44.     def __iter__(self):
  45.         return self

  46.     def __next__(self):
  47.         if self.islast:
  48.             raise StopIteration
  49.         url = self.head + self.url
  50.         req = ur.Request(url=url, headers=self.h)
  51.         opener = get_proxy()
  52.         temp = opener.open(req).read().decode('gbk')
  53.         page_name = self.name + '(图%d)'%self.page
  54.         temp_pic = temp.find(page_name) + len(page_name) + 7
  55.         temp_pic_end = temp.find('" />', temp_pic)
  56.         pic_link = temp[temp_pic:temp_pic_end]
  57.         self.page += 1
  58.         a = temp.find('\' class="page-en">%d</a>'%self.page)
  59.         if a == -1:
  60.             self.islast = True
  61.         b = temp.rfind('\'', 0, a) + 1
  62.         self.url = temp[b:a]
  63.         return (pic_link, page_name)
  64.                


  65. def downloader(url = 'https://www.mm131.net/xinggan/5164.html', head = 'https://www.mm131.net/xinggan/'):
  66.     name = get_name(url)
  67.     pics = pic(url, head, name)
  68.     page = 0
  69.     for each_pic in pics:
  70.         page += 1
  71.         print('正在寻找第%d张图片...'%page)
  72.         (link, pic_name) = each_pic
  73.         print('正在下载第%d张图片...'%page)
  74.         save_pic(link, pic_name, name)
  75.         print('第%d张图片下载完成'%page)
  76.             
  77. if __name__ == '__main__':
  78.     downloader()
复制代码


最佳答案
2019-10-11 22:58:27
Unicorn# 发表于 2019-10-11 20:14
访问网站网址不会,但是访问图片地址才会
这种没法解吗

该网站有 umuuid参数加密 反爬虫机制,我还没找到破解的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-9 10:23:55 | 显示全部楼层
header少了refer参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 13:17:14 | 显示全部楼层
加了referer也不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-9 19:43:42 From FishC Mobile | 显示全部楼层
wongyusing 发表于 2019-10-9 10:23
header少了refer参数

不是refer的问题,图片被网站替换掉了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 22:51:20 | 显示全部楼层
有好的解决方案吗,我也碰到过这种问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-10 16:30:53 | 显示全部楼层
网站源码,有图片链接,请求下来,响应里面也有。
  1. url = "https://www.mm131.net/xinggan/5164.html"
  2. print(requests.get(url).text)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-10 23:41:15 | 显示全部楼层
Stubborn 发表于 2019-10-10 16:30
网站源码,有图片链接,请求下来,响应里面也有。

能够找到图片链接的,但是光用浏览器访问,多次访问之后都被强行跳转。
用python访问每次都会被跳转,改headers和用代理都不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 00:12:55 | 显示全部楼层
Unicorn# 发表于 2019-10-10 23:41
能够找到图片链接的,但是光用浏览器访问,多次访问之后都被强行跳转。
用python访问每次都会被跳转,改 ...

浏览器都会被跳转,爬虫就没有什么用啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-11 20:14:28 | 显示全部楼层
Stubborn 发表于 2019-10-11 00:12
浏览器都会被跳转,爬虫就没有什么用啦

访问网站网址不会,但是访问图片地址才会
这种没法解吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 21:03:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-11 22:58:27 | 显示全部楼层    本楼为最佳答案   
Unicorn# 发表于 2019-10-11 20:14
访问网站网址不会,但是访问图片地址才会
这种没法解吗

该网站有 umuuid参数加密 反爬虫机制,我还没找到破解的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-19 09:48:10 | 显示全部楼层
还没有学会爬,不过网址不错,以后学 得爬来试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 03:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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