鱼C论坛

 找回密码
 立即注册
查看: 25322|回复: 418

[作品展示] 爬取妹子图 三部曲

  [复制链接]
发表于 2020-2-27 13:42:26 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 学Python不开车 于 2020-3-11 14:30 编辑

1582782007(1).jpg 从小甲鱼的ooxx过来的,由于正则表达式过于困难,所有使用了BeautifulSoup
爬取网址 https://www.mzitu.com/  总共做了三步
分别是1、爬取第一页封面 2、爬取所有页封面 3、爬取所有页所有图片
安装模块 打开命令提示簿 pip install + 模块名  如 pip install requests
这里的lxml 可以不用  可以把下面的 lxml 改成 html.parser
最后一步我加了 import time  为了防止爬取过快 被制裁
模块化这一块欠缺太多 大家凑合着看
代码如下
  1. #爬取第一页所有图集的封面
  2. import requests
  3. from bs4 import BeautifulSoup
  4. import lxml
  5. import os

  6. url = 'https://www.mzitu.com'
  7. headers ={'Referer':'https://www.mzitu.com',
  8. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/6.1.2107.204 Safari/537.36'}
  9. # 打开网页 解析成BeautifulSoup对象
  10. def url_open(url):
  11.         res = requests.get(url,headers=headers)
  12.         html = res.text
  13.         soup = BeautifulSoup(html,'lxml')
  14.         return soup
  15. #找到图集封面的网址 生成一个列表
  16. def img_href(url):
  17.         all_href = []
  18.         href = url_open(url).find('div',class_='postlist').find_all('img',class_='lazy')
  19.         for i in href:
  20.                 all_href.append(i['data-original'])
  21.         return all_href
  22. # 保存 图片               
  23. def save_img(folder,all_href):
  24.         for href in all_href:
  25.                 file_name = href.split(r'/')[-1]
  26.                 #这里不能用url_open(url) 因为第一步解析出的是bs对象 图片需要以二进制写入
  27.                 #所以这里要先requests.get()然后.content
  28.                 href = requests.get(href,headers = headers)
  29.                 with open(file_name,'wb') as f:
  30.                         img = href.content
  31.                         f.write(img)
  32. #在当前目录创建ooxx文件夹,将图片保存到ooxx
  33. def download_mm(folder='ooxx'):
  34.         os.mkdir(folder)
  35.         os.chdir(folder)
  36.         save_img(folder,img_href(url))


  37. if __name__ =='__main__':
  38.         download_mm()
复制代码

第二步

  1. #爬取所有页面图集的封面

  2. import requests
  3. from bs4 import BeautifulSoup
  4. import lxml
  5. import os

  6. headers ={'Referer':'https://www.mzitu.com',
  7. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/6.1.2107.204 Safari/537.36'}
  8. # 打开网页 解析成BeautifulSoup对象
  9. def url_open(url):
  10.         res = requests.get(url,headers=headers)
  11.         html = res.text
  12.         soup = BeautifulSoup(html,'lxml')
  13.         return soup

  14. #找到图集封面的网址 生成一个列表
  15. def find_imgs(url):
  16.         img_addrs = []
  17.         href = url_open(url).find('div',class_='postlist').find_all('img',class_='lazy')
  18.         for i in href:
  19.                 img_addrs.append(i['data-original'])
  20.         return img_addrs
  21. # 保存 图片               
  22. def save_img(folder,img_addrs):
  23.         for href in img_addrs:
  24.                 file_name = href.split(r'/')[-1]
  25.                 #这里不能用url_open(url) 因为第一步解析出的是bs对象 图片需要以二进制写入
  26.                 #所以这里要先requests.get()然后.content
  27.                 href = requests.get(href,headers = headers)
  28.                 with open(file_name,'wb') as f:
  29.                         img = href.content
  30.                         f.write(img)

  31. #在当前目录创建ooxx文件夹,将图片保存到ooxx
  32. def download_mm(folder='ooxx'):
  33.         os.mkdir(folder)
  34.         os.chdir(folder)
  35.         url = 'https://www.mzitu.com'
  36.         #获取最大页面
  37.         page_max = url_open(url).find('div',class_='nav-links').find_all('a',class_='page-numbers')[-2].string

  38.         for i in range(1,int(page_max)+1):
  39.             page_url = url + '/page/' + str(i) +'/'
  40.             img_addrs = find_imgs(page_url)
  41.             save_img(folder,img_addrs)

  42. if __name__ =='__main__':
  43.         download_mm()
复制代码

如果大家开车累的话可以去听听音乐 刚学习的爬取音乐https://fishc.com.cn/thread-160123-1-1.html
最后一步
游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 4荣誉 +10 鱼币 +10 贡献 +6 收起 理由
Mr.WJJ + 5
raien + 5 + 5 + 3
cwhsmile + 5 速度过快会封你半天IP
LuckyTiger66 + 3 鱼C有你更精彩^_^

查看全部评分

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

使用道具 举报

发表于 2020-2-27 17:06:02 From FishC Mobile | 显示全部楼层
咳咳 那个我来审查一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-2-27 17:23:54 | 显示全部楼层
车车,好快的车车
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-2-27 17:28:34 | 显示全部楼层
我是审核员!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-27 19:03:17 | 显示全部楼层
顶一顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-27 20:22:34 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-27 21:55:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-27 23:21:23 | 显示全部楼层
我是绅士,嗯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 10:16:02 | 显示全部楼层
车不车的无所谓真的就是想学习!!照片呢???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-2-28 10:24:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-28 10:31:50 | 显示全部楼层
这是什么语言啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 10:32:43 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 10:46:20 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2020-2-28 10:47:11 | 显示全部楼层
trxxdz 发表于 2020-2-28 10:16
车不车的无所谓真的就是想学习!!照片呢???

如果只想开(学)车(习) 建议使用第三步代码 可以漂移过弯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 10:55:00 | 显示全部楼层
是谁把车门焊死了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 11:04:57 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 11:06:59 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-28 11:39:11 | 显示全部楼层
这是用什么软件运行的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 12:14:12 | 显示全部楼层
柠檬汽水冰 发表于 2020-2-28 11:39
这是用什么软件运行的啊

我用的是vscode   用pycharm 也可以 或者用python 自带的 idle也行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 12:35:16 | 显示全部楼层
审核官:~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 00:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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