视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
讲解编写Python爬虫抓取暴走漫画上gif图片的实例代码
2020-11-27 14:25:45 责编:小采
文档


这篇文章讲解编写Python爬虫抓取暴走漫画上gif图片的实例代码,示例代码为Python3,利用到了urllib模块、request模块和BeautifulSoup模块,需要的朋友可以参考下

本文要介绍的爬虫是抓取暴走漫画上的GIF趣图,方便离线观看。爬虫用的是python3.3开发的,主要用到了urllib、request和BeautifulSoup模块。

urllib模块提供了从万维网中获取数据的高层接口,当我们用urlopen()打开一个URL时,就相当于我们用Python内建的open()打开一个文件。但不同的是,前者接收一个URL作为参数,并且没有办法对打开的文件流进行seek操作(从底层的角度看,因为实际上操作的是socket,所以理所当然地没办法进行seek操作),而后者接收的是一个本地文件名。

Python的BeautifulSoup模块,可以帮助你实现HTML和XML的解析
先说一下,一般写网页爬虫,即抓取网页的html源码等内容,然后分析,提取相应的内容。
这种分析html内容的工作,如果只是用普通的正则表达式re模块去一点点匹配的话,对于内容简单点的网页分析,还是基本够用。
但是对于工作量很大,要解析内容很繁杂的html,那么用re模块,就会发现无法实现,或很难实现。
而使用beautifulsoup模块去帮你实现分析html源码的工作的话,你就会发现,事情变得如此简单,极大地提高了分析html源码的效率。
注:BeautifulSoup是第三方库,我使用的是bs4。urllib2在python3中被分配到了urllib.request中,文档中的原文如下。
Note:The urllib2 module has been split across several modules in Python 3 named urllib.requestand urllib.error.
爬虫源代码如下

# -*- coding: utf-8 -*-

import urllib.request
import bs4,os

page_sum = 1 #设置下载页数

path = os.getcwd()
path = os.path.join(path,'暴走GIF')
if not os.path.exists(path):
 os.mkdir(path) #创建文件夹

url = "http://baozoumanhua.com/gif/year" #url地址
headers = { #伪装浏览器
 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW) AppleWebKit/537.36 (KHTML, like Gecko)'
 ' Chrome/32.0.1700.76 Safari/537.36'
}

for count in range(page_sum):
 req = urllib.request.Request(
 url = url+str(count+1),
 headers = headers
 )
 print(req.full_url)
 content = urllib.request.urlopen(req).read()

 soup = bs4.BeautifulSoup(content) # BeautifulSoup
 img_content = soup.findAll('img',attrs={'style':'width:460px'})

 url_list = [img['src'] for img in img_content] #列表推导 url
 title_list = [img['alt'] for img in img_content] #图片名称

 for i in range(url_list.__len__()) :
 imgurl = url_list[i]
 filename = path + os.sep +title_list[i] + ".gif"
 print(filename+":"+imgurl) #打印下载信息
 urllib.request.urlretrieve(imgurl,filename) #下载图片

在第15行可以修改下载页数,将此文件保存为baozougif.py,使用命令python baozougif.py运行后在同目录下会生成「暴走GIF」的文件夹,所有的图片会自动下载到该目录中。

下载本文
显示全文
专题