Python3 爬虫从网站抓取图片(一)

之前用爬虫抓取了文字内容,这次抓取图片。中国政府网有很多好看的生态图片,用爬虫保存下来。政府网站上的图片一般均为静态链接,不会设置动态加载反爬虫,可以稍作练习,绝不能大量爬取最终造成恶意攻击效果。http://www.gov.cn/xinwen/tupian/shengtai.htm

Python3 爬虫从网站抓取图片(一)

抓取图片和抓取文字的方法一样。

第1步:使用requests库的get()方法下载获取整个网页,再用BeautifulSoup库的find_all()方法,找出所有标签。

第2步:遍历所有的标签列表,获取每一个图片的链接地址。

第3步:使用requests库的get()方法抓取图片。这里注意,抓取到的还是是“仅显示一张图片的网页”,不能直接保存为我们肉眼可见的图片,而要使用open(filename, "wb")创建一个二进制文件,然后将这个特殊的“网页”内容写入我们新建的文件中,这样才能“下载”到图片。

open() 方法


Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

注意:

使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。

open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。


https://www.runoob.com/python3/python3-file-methods.html

<code># _*_ coding:utf-8 _*_

import sys,requests
from bs4 import BeautifulSoup

def DownloadImg(img_url,file_name):
\trq = requests.get(img_url)

\tf = open("E:\\\\Python3\\\\Images\\\"+ file_name,"wb")
\tf.write(rq.content)
\tf.flush()

if __name__ == '__main__':
\ttarget = 'http://www.gov.cn/xinwen/tupian/shengtai.htm'
\trq = requests.get(target)
\thtml = rq.text
\timgs = BeautifulSoup(html,'html.parser').find_all('img')

\tfor i in range(len(imgs)):
\t\timg_url = 'http://www.gov.cn' + imgs[i].get('src')
\t\tfile_name = str(i) +'.jpg'
\t\tDownloadImg(img_url,file_name)/<code>
Python3 爬虫从网站抓取图片(一)

这个程序会告警,但不影响下载,留待后面解决。


相关阅读:


分享到:


相關文章: