(1)使用技术

python 3.5.2、requests 、BeautifulSoup

(2)背景介绍

爬取的网站http://tu.duowan.com/tag/5037.html

需要爬取的内容是网站上面的图片

  • 首先我们观察一下今日囧途的每个图片点进去之后,会有详情页面。而这个想进入详情页面,我们必须要先爬取到这些url。之后通过url,然后进入页面也就是红框的的url
  • 然后进入详情页面之后,我们可以用开发者工具查看是否有链接返回图片的信息,发现有个请求里面返回了所有的picInfo。好的这个时候爬取图片的思路就很清晰了,先到今日囧图的首页爬取到每个网页的信息,然后再到详情页面里面将所有的图片信息获取,之后将图片下载下来。

(3)详细代码

import requests
from bs4 import BeautifulSoup
import json
import os#用来获取今日囧图所有的url
def get_today_urls(url):today_urls = []res = requests.get(url)res.encoding = 'utf-8'soup = BeautifulSoup(res.text,"html.parser")for url in soup.select(".i-list li em a"):today_urls.append(url['href'])return today_urls#根据每个url来获取每个囧图界面里面的具体的内容
def get_details(url):url_param = url.split("/")[-1].split(".")[0]detail_url = "http://tu.duowan.com/index.php?r=show/getByGallery/&gid={}".format(url_param)res = requests.get(detail_url)res.encoding = 'utf-8'soup = BeautifulSoup(res.text,"html.parser")json_str = json.loads(str(soup))dir_name =json_str['gallery_title']dir_name = dir_name.split(":")[0]print(dir_name)if not os.path.exists(dir_name):os.mkdir(dir_name)pic_info = json_str["picInfo"]return pic_info , dir_name#根据具体页面里面获取的图片的地址,来将图片保存到本地来。
def save_pic(url,dir_name):pic = requests.get(url)pic.encoding = 'utf-8'pic_name = url.split("/")[-1]pic_dir = os.path.join(dir_name , pic_name)if not os.path.exists(pic_dir):with open(pic_dir,"wb") as f:f.write(pic.content)f.close()def get_duowan_pic():#今日囧图首页的url,用来传入get_today_urls(url)中获取今天所有的囧图的urlurl = "http://tu.duowan.com/tag/5037.html"today_urls = get_today_urls(url)for today_url in today_urls:pic_info, dir_name = get_details(today_url)for pic in pic_info:save_pic(pic["source"], dir_name)def main():get_duowan_pic()#函数入口
if __name__ == '__main__':main()

代码相对比较简单,有问题的话,大家可以一起讨论。

版权声明: 原创文章,如需转载,请注明出处。 https://blog.csdn.net/lwx356481/article/details/81325880

BeautifulSoup 爬取多玩今日囧图的图片相关推荐

  1. 利用beautifulsoup爬取微博搜素朋友圈背景图

    利用beautifulsoup爬取微博搜素"朋友圈背景图" 微博搜索:朋友圈背景图 1.首先先导入库 requests是用来请求返回网页源代码所需要的请求库,etree和beaut ...

  2. python BeautifulSoup爬取豆瓣电影top250信息并写入Excel表格

    豆瓣是一个社区网站,创立于2005年3月6日.该网站以书影音起家,提供关于书籍,电影,音乐等作品信息,其描述和评论都是由用户提供的,是Web2.0网站中具有特色的一个网站. 豆瓣电影top250网址: ...

  3. 没有网络怎么学网络爬虫之BeautifulSoup爬取html表格存入Excel表格

    学习网络爬虫当然是不可能一点网都没有的,我们前期需要网络打开自己需要的网页,获取网页上的源码保存在本地文件,就可以不用网络了,我家里的网络很差,我就是这样操作的,例如上节爬取智联招聘网步骤,下次访问的 ...

  4. [python应用案例] 一.BeautifulSoup爬取天气信息并发送至QQ邮箱

    前面作者写了很多Python系列文章,包括: Python基础知识系列:Python基础知识学习与提升 Python网络爬虫系列:Python爬虫之Selenium+Phantomjs+CasperJ ...

  5. 程序猿必备福利之二上篇!!!简易使用Nodejs实现从美图网爬取清晰脱俗的美图???

    当然这里为了能够让小白也能够看懂学会,我会说的很详细,我很体谅小白的哦,分了几篇讲解,请谅解哦 这里先来一波看前美图福利,激起你的学习欲望,嘿嘿嘿!!!点击查看程序猿必备福利之二下篇##### 小白如 ...

  6. 使用BeautifulSoup爬取想要的标签(《python网络爬虫权威指南》笔记)

    使用BeautifulSoup爬取想要的标签 精确爬取标签 BeautifulSoup中的find()和find_all()方法 BeautifulSoup中的对象 兄弟.子.父.后代标签的处理 抓取 ...

  7. Python beautifulsoup爬取小说

    Python beautifulsoup爬取小说 提前准备好需要的库文件,命令行输入以下命令 pip install requests pip install bs4 pip install lxml ...

  8. 爬虫beautifulsoup爬取豆瓣读书数据

    爬虫beautifulsoup爬取豆瓣读书数据:主要是爬取收集书的名字.类别.简介,用于接下来的聚类学习. 豆瓣链接:https://book.douban.com/tag/?view=type&am ...

  9. python爬取豆瓣读书并进行图形化分析

    python爬取豆瓣读书并进行图形化分析 豆瓣读书网页数据爬取并保存至csv 对数据进行分析并汇成图形 绘制散点图 图形效果展示 以下代码内容大多是团队小伙伴的杰作,而本人只是为了能让更多的人学习到知 ...

最新文章

  1. soj 4539 贪心+优先队列
  2. Kali Linux 2020.1快速修改root用户密码
  3. python学习_数据处理编程实例(一)
  4. Java并发:线程池详解(ThreadPoolExecutor)
  5. Opencv学习笔记——release和debug两个模式的运行问题
  6. [数据库] Navicat for MySQL事件Event实现数据每日定期操作
  7. 元组-元组和格式化字符串
  8. Google编程题:最小操作数
  9. 使用 gRPCurl 调试.NET 5的gPRC服务
  10. android和java中常见 Exception
  11. java 反应堆模式_Netty中的三种Reactor(反应堆)
  12. android u盘自动挂载点,Android2.3实现SD卡与U盘自动挂载的方法
  13. Canvas绘图基础(一)
  14. Day27:threading模块
  15. Python3.4下使用sqlalchemy
  16. 计算IO设备、CPU利用率
  17. Week08手写笔记
  18. mm,mil,inch,um的转换关系
  19. java实验室管理系统报告_基于JAVA的实验室信息管理系统设计与实现
  20. jQuery - 设置div的内容和属性

热门文章

  1. xash3d android最新版,[更新]xash3D0.19.2正式版
  2. 在 Android 系统中直接调用 SO文件(包含System.loadLibrary加载so的路径解释)
  3. Nginx中Return指令使用
  4. 大脑笔记:古诗词思维导图涂鸦记忆法
  5. 今日头条中生活领域范围详解,怎样提高垂直度?
  6. 小新AIR14 摄像头无法正常显示
  7. 这10个理由告诉你,为什么要在设计中使用渐变
  8. 批量处理重复的订单号
  9. 一级计算机基础及wps office应用,计算机一级计算机基础及WPS Office应用模拟题
  10. 忘记MySQL密码的解决方法