Python制作豆瓣图片的爬虫

前段时间自学了一段时间的Python,想着浓一点项目来练练手。看着大佬们一说就是爬了100W+的数据就非常的羡慕,不过对于我这种初学者来说,也就爬一爬图片。

我相信很多人的第一个爬虫程序都是爬去贴吧的图片,嗯,我平时不玩贴吧,加上我觉得豆瓣挺良心的,我就爬了豆瓣首页上面的图片。其实最刚开始是想爬全站,后来一想我这简直是脑子犯抽,全站的图片爬下来得有多少,再说这个只是练一下手,所以就只爬取了首页上的图片。废话不多说 开始代码。

首先是主文件的代码:

import re

from html_downloder import HtmlDownloader

from html_downloder import Image

"'起始URL'"

url = "https://www.douban.com"

"'保存目录'"

image_path = "F:\source\Python\爬虫\ImageGet\Image%s.jpg"

"'定义实体类'"

downloader = HtmlDownloader()

html = downloader.download(url)

"'SaveFile(html, html_path)'"

html = html.decode('utf-8')

"'正则表达式'"

reg1 = r'="(https://img[\S]*?[jpg|png])"'

"'提取图片的URL'"

dbdata = re.findall(reg1, html)

imgsave = Image()

"'下载保存图片'"

imgsave.ImageGet(dbdata, image_path)

我们打开豆瓣首页然后看一下里面图片的url会发现

都是以“=”等号开头,后面接双引号,中间都是https://img,末尾以双引号结束。

因此我们的正则表达式可以写成 reg1 = r'="(https://img[\S]*?[jpg|png])"'

在这个表达式中"[]"中括号里面的东西会作为一个整体,其中[\S]表示大小写字母和数字,[jpg|png]表示以png结尾或者jpg结尾(在这次爬虫中并没有包括gif,因为打开gif的url发现是空白)。

然后是html_downloder.py的代码:

# file: html_downloader.py

import urllib.request

import urllib.error

import time

class HtmlDownloader(object):

def download(self, url):

if url is None:

return None

try:

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)'}

"'发出请求'"

request = urllib.request.Request(url=url, headers=header)

"'获取结果'"

response = urllib.request.urlopen(url)

except urllib.error.URLError as e:

if hasattr(e, "code"):

print(e.code)

if hasattr(e, "reason"):

print(e.reason)

if response.getcode() != 200:

return None

html = response.read()

response.close()

return html

class Image (object):

def ImageGet(self, imageurl, image_path):

x = 0

for li in imageurl:

urllib.request.urlretrieve(li, image_path % x)

x = x + 1

"'休眠5s以免给服务器造成严重负担'"

time.sleep(5)

这个文件的代码主要是负责下载html网页和下载具体的图片。

接下来就可以在保存路径对应的文件夹中中看到下载的图片了

至此,爬虫告一段落,离大佬的路还远得很,继续加油!!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

python实例豆瓣代码_Python制作豆瓣图片的爬虫实例代码相关推荐

  1. python爬取京东商品图片_python利用urllib实现爬取京东网站商品图片的爬虫实例

    本例程使用urlib实现的,基于python2.7版本,采用beautifulsoup进行网页分析,没有第三方库的应该安装上之后才能运行,我用的IDE是pycharm,闲话少说,直接上代码! # -* ...

  2. html登录界面设计代码_Python登录豆瓣并爬取影评

    Cookie是为了交互式web而诞生的,它主要用于以下三个方面: 会话状态管理(如用户登录状态.购物车.游戏分数或其它需要记录的信息) 个性化设置(如用户自定义设置.主题等) 浏览器行为跟踪(如跟踪分 ...

  3. python怎样画动态文字_Python制作动态字符图的实例

    这次我们拿小龙猫来做演示 这里就不必多说了,也就导入几个用到的包: SOURCE_PATH:这个是GIF的路径OUTPUT_PATH:这个是每一帧的存放路径FRAMES_PATH:这个也是每一帧的存放 ...

  4. python写图片爬取软件_python制作微博图片爬取工具

    有小半个月没有发博客了,因为一直在研究python的GUI,买了一本书学习了一些基础,用我所学做了我的第一款GUI--微博图片爬取工具.本软件源代码已经放在了博客中,另外软件已经打包好上传到网盘中以供 ...

  5. python 大智慧365 数据格式_Python爬取365好书中小说代码实例

    需要转载的小伙伴转载后请注明转载的地址 需要用到的库 from bs4 import BeautifulSoup import requests import time 获取小说的每个章节的名称和章节 ...

  6. 如何用python批量处理图片大小_python批量修改图片大小的方法

    本文实例为大家分享了python批量修改图片大小的具体代码,供大家参考,具体内容如下 引用的模块 from PIL import Image Image的使用 def resize_image(img ...

  7. python批量修改图片内容_python批量修改图片大小的方法

    本文实例为大家分享了python批量修改图片大小的具体代码,供大家参考,具体内容如下 引用的模块 from PIL import Image Image的使用 def resize_image(img ...

  8. 表格为一条细线的html代码,html制作细线表格的简单实例

    原标题:html制作细线表格的简单实例 关于这个细线表格的制作方法,百度一下可能就会有答案告诉你设置这几个值:给table设置border="0" cellspacing=&quo ...

  9. 用python批量下载网络图片_python批量下载图片的三种方法

    一是用微软提供的扩展库win32com来操作IE: win32com可以获得类似js里面的document对象,但貌似是只读的(文档都没找到). 二是用selenium的webdriver: sele ...

最新文章

  1. 望城区构建摩托车电动车防盗系统 打造物联网平安智慧城市
  2. flutter集成到原生工程
  3. 大数据笔记(六)——HDFS的底层原理:JAVA动态代理和RPC
  4. 数据库---练习题(45道)
  5. vj节点_创意编码—如何在JavaScript中创建VJ引擎
  6. GeoServer地图开发解决方案(四):发布Web地图服务(WMS)篇
  7. 试试Write Live Writer在博客园的使用
  8. asp.net写验证码
  9. java视频教程哪个好?
  10. Shell脚本学习指南
  11. 10.柱状图-----人口普查各地区人口排行榜
  12. 微信机器人 DIY 从 0 到 1
  13. 安装visio viewer2013成功后仍无法使用
  14. Vue3-pinia(状态管理)
  15. 优漫动游色彩搭配原则,如何巧妙的搭配色彩?
  16. 校园二手交易平台课程设计正文
  17. 你的企业IM安全吗?对于私有化的即时通讯软件你了解多少?
  18. 为什么要使用UTF-8?
  19. 抖音快手的新战争从IPO开始
  20. 2021年育婴员(五级)报名考试及育婴员(五级)免费试题

热门文章

  1. [Vulnhub] DC-4
  2. Firefox 浏览器高级设置
  3. 深入浅出分布式存储性能优化方案
  4. 技巧-Windows如何预览文件
  5. 汉字转拼音工具类,依赖Pinyin4J
  6. 离开小厂进大厂的第一周:我后悔了
  7. python转cpython_python转换成c
  8. 女朋友问的那些问题—log.info在测试环境正常打印,上了生产就废?
  9. ViewFlipper自用 左右滑动切屏、上下滑动调整亮度’
  10. Android Studio汉化教程