Python爬取图虫网美女图片实战

  • 1.前戏
  • 2.代码实现
    • 所需模块
    • 发送请求
    • 提取图片的一级页面链接
    • 提取图片的二级页面链接并保存
  • 3.代码及运行结果
    • 完整代码
    • 运行结果
  • 4.成品欣赏

1.前戏

本人是爬虫初学者,练手网站都是在b站上搜索爬虫,然后找的练手网站,这次也不例外.
发现一个吸引人的封面:

然后打开视频,暂停提取目标网站:https://tuchong.com/tags/美女

但是,由于技术不熟练,直接请求这个网站返回的源代码里没有东西,就又返回b站学习了下如何利用浏览器的抓包工具
找到了所需的url:

https://tuchong.com/rest/tags/%E7%BE%8E%E5%A5%B3/posts?page={u}&count=20&order=weekly&before_timestamp=

2.代码实现

所需模块

import re,requests
import bs4
import time,random

发送请求

url=’ ’
ualist=[‘一个ua池’]
#从请求池里随机获取一个请求头
headers = {
“user-agent”: random.choice(ualist),
}
resp=requests.get(url,headers)

提取图片的一级页面链接

ids=re.findall(r’“post_id”:"(.*?)",“type”’,resp.text)
imglink=[]
for imgs in ids:
    imglink.append(‘https://zhudefeng.tuchong.com/’+f’{imgs}’)

提取图片的二级页面链接并保存

for link in imglink:
   resp_link=requests.get(url=link,headers=headers)
   exScoup = bs4.BeautifulSoup(resp_link.text, “html.parser”)
   img_link = exScoup.select(‘img[class=“multi-photo-image”]’)
    img = re.findall(r’src="(.*?)"/>’, str(img_link))

  • 命名

link_name = exScoup.select(‘meta[name=“title”]’)
img_name = re.findall(r’content="(.*?)"’, str(link_name))

  • 保存

count=0
count += 1
with open(f’D:/Users/best/{img_name[0]}{count}.jpg’, mode=‘wb’) as f:
   f.write(ii.content)
time.sleep(0.2)
print(f"第{count}张下载完成")

3.代码及运行结果

完整代码

import re,requests
import bs4
import time,random#这里page={},count=  都可以修改
for u in range(1,11):url=f'https://tuchong.com/rest/tags/%E7%BE%8E%E5%A5%B3/posts?page={u}&count=20&order=weekly&before_timestamp='ualist = ["Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3872.400 QQBrowser/10.8.4455.400","Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:23.0) Gecko/20131011 Firefox/23.0","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36","Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36","Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/31.0","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1623.0 Safari/537.36","Mozilla/5.0 (Windows; U; Windows NT 6.0; nb-NO) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.14 (KHTML, like Gecko) Chrome/24.0.1292.0 Safari/537.14","Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1464.0 Safari/537.36","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7)","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36","Mozilla/5.0 (Windows NT 6.2; rv:21.0) Gecko/20130326 Firefox/21.0","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36","Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64; rv:28.0) Gecko/20100101  Firefox/28.0","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20120101 Firefox/29.0","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36","Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36","Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20130401 Firefox/21.0","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36","Mozilla/5.0 (Windows x86; rv:19.0) Gecko/20100101 Firefox/19.0","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1309.0 Safari/537.17","Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36","Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15",]#随机选取一个请求头,简单模拟浏览器headers = {"user-agent": random.choice(ualist),}resp=requests.get(url,headers)#提取图片主链接ids=re.findall(r'"post_id":"(.*?)","type"',resp.text)imglink=[]for imgs in ids:imglink.append('https://zhudefeng.tuchong.com/'+f'{imgs}')#提取单个图片地址for link in imglink:count=0resp_link=requests.get(url=link,headers=headers)exScoup = bs4.BeautifulSoup(resp_link.text, "html.parser")link_name = exScoup.select('meta[name="title"]')#取出图片名字img_name = re.findall(r'content="(.*?)"', str(link_name))print(f"正在下载<{img_name}>图片合集")img_link = exScoup.select('img[class="multi-photo-image"]')img = re.findall(r'src="(.*?)"/>', str(img_link))#下载图片for i in img:ii=requests.get(i)try:count += 1with open(f'D:/Users/best/{img_name[0]}{count}.jpg', mode='wb') as f:f.write(ii.content)#添加睡眠时间,防止反爬time.sleep(0.2)print(f"第{count}张下载完成")except:print('下载失败!')resp.close()
print("All over!")

运行结果

4.成品欣赏


1200+图片,其中爬多少页也可以自己修改

2021-07-28 Python爬虫相关推荐

  1. 2021最新《python爬虫从0-1》5.正则表达式讲解

    正则表达式讲解 常用正则表达式 re库 re.search re.findall 教程地址 常用正则表达式 字符 描述 \d 代表任意数字,就是阿拉伯数字 0-9 这些玩意. \D 大写的就是和小写的 ...

  2. 2021.5.22 Python爬虫实战:效率办公,从下载文献开始...

    在百度学术中,当我们查找论文原文时,需要知道该论文的DOI(Digital Object Identifier),通过它可以方便.可靠地链接到论文全文.但是,如果我们所需查找的同主题论文数目繁多,这时 ...

  3. 2021.07.28

    WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分. WPF的特点:程序人员与美工 ...

  4. 2021/9/28 python学习笔记:np.argmax、np.delete

    1.np.argmain,np.argmax函数:找最大最小值索引,可按轴查找 import numpy as npc = np.array([[4,7,0,9],[3,6,2,4],[9,8,0,3 ...

  5. Python爬虫入门教程导航帖

    转载:梦想橡皮擦 https://blog.csdn.net/hihell/article/details/86106916 **Python爬虫入门教程导航,目标100篇** 本系列博客争取把爬虫入 ...

  6. 新手如何理解一个Web应用的构建(2021.07.29更新)

    Web应用构建 ==前言== 我为什么写这篇文章? 适合什么样的人看? ==摘要== 步骤汇总 (1)网站定位与功能设定 (2)信息架构 (3)UI设计 (4)应用架构 (5)开发 (6)部署 (7) ...

  7. 萝卜爆肝Python爬虫学习路线

    最近经常有小伙伴咨询,爬虫到底该怎么学,有什么爬虫学习路线可以参考下,萝卜作为非专业爬虫爱好者,今天咱们就来分享下,对于我们平时的基础爬虫或者小规模爬虫,应该掌握哪些技能.需要如何学起! 学习路线大纲 ...

  8. 十一个爆火的Python爬虫实战项目源码【不用谢】

    目录 Python爬虫:爬取豆瓣电影中速度与激情8演员图片 Python爬虫:斗鱼弹幕相关信息保存到mongodb Python爬虫:抓取喜马拉雅电台音频 Python爬虫-抓包分析爬取实习僧全部招聘 ...

  9. python爬虫 2021中国大学排名定向爬虫

    最近的几篇博客来源是之前我下载的一个课件 在网上搜索了一下是一下这个课程的,可以结合视频博客以及代码去更好地学习 Python网络爬虫与信息提取_北京理工大学_中国大学MOOC(慕课) (icours ...

  10. 28个精品Python爬虫实战项目

    先来说说Python的优势!然后给大家看下这28个实战项目的实用性! Python跟其他语言相比,有以下优点: 1. 简单 Python是所有编程语言里面,代码量最低,非常易于读写,遇到问题时,程序员 ...

最新文章

  1. Python爬虫2-GET_POST与开发者工具
  2. 问题.beego路由设置及请求参数传递
  3. 全球及中国速冻菠萝市场消费潜力及供需前景调研报告2021-2027年
  4. 《编码的奥秘》---学习编程一年半的体会
  5. OpenCASCADE绘制测试线束:几何命令之展示
  6. 对java面向对象的三大特征的理解_Java面向对象的三大特征是什么?
  7. asp.net core程序在k8s中基于rabbitmq队列消息数的HPA实践!
  8. Windows注册表操作基础代码
  9. 解决Sublime Text 2中文显示乱码问题
  10. 小程序发布上线流程_小程序如何发布?微信小程序发布流程很简单
  11. ExpandableListView 实现三级菜单中grou_item与child_item点击无响应
  12. android串口驱动服务怎么开启,Android usb转串口驱动开发
  13. python模拟登录淘宝直通车_淘宝直通车推广计划
  14. 博思特POSITAL编码器OCD58-CA1212-B15V-H3P
  15. 【过程4】——时间过得很快你的变化也很大
  16. java自行车内走线,【骑行课堂】内走线不是噩梦:“一秒“装好内走线神器
  17. 15.在springboot中的事务处理
  18. Android系统自带的层次状态机StateMachine(Hierarchical State Machine)
  19. 【网络流】【二分图最大匹配】Buaacoding1043 难题·Beihang Couple Pairing Comunity 2017
  20. Grapher中如何保存图形模板,批量处理相同格式的文件

热门文章

  1. 微信删除的聊天记录怎么恢复,教你两个方法
  2. windows飞行模式被强制开启,无法关闭,我来带你解决问题
  3. Django 编写您的第一个Django应用
  4. TCP协议和UDP协议头部结构
  5. 基于腾讯地图定位组件实现周边POI远近排序分布图
  6. VINS-MONO概述
  7. 捣鼓PlantUML
  8. 关于fpga的语言逻辑异步电路同步时序电路终于读懂了
  9. 【转载】提问的智慧(How To Ask Questions The Smart Way)
  10. java 如何获取当前时间到夜晚12点的毫秒差值