天天看点

Python爬取图片

前言

自从学习编程以来,总是听别人说什么爬虫爬虫的,爬这爬那,我心想老是扒拉来扒拉去不累吗,有啥好爬的,又没啥子用,前两天无聊就想看看python爬取网站的图片到底是什么鬼,就从网上开始学习,从下载python到配置,从寻找喜欢的网站到爬的盆满钵满,现在我就来总结一下。

准备

1、下载一个python安装并配置环境变量,跟java差不多。

官网下载地址:https://www.python.org/downloads/windows/​​点击下载​​

Python爬取图片

下载installer的,然后安装直接下一步就好,也可以自行选择下载的位置,最后配置环境变量

配置环境变量,将python和Scripts都配置上

Python爬取图片

验证是否配置成功,cmd打开命令行,输入python -V,如图证明配置环境变量成功

Python爬取图片

2、脚本

Python爬取图片
# 导入必要的包
from selenium import webdriver
from bs4 import BeautifulSoup
import requests

# 打开谷歌浏览器
driver = webdriver.Chrome()
# 设置要爬取的网站
driver.get('http://pic.netbian.com/4kmeinv/')
# 初始化一个引用计数,用于后面的图片简单命名
index = 1

# 定义爬虫方法
def getImage():
    # 将index置为全局变量
    global index
    # 循环爬取,循环多少次爬取多少页的图片
    for i in range(0,50):
        # 模拟点击下一页,因为爬取完一页需要点击下一页爬取
        driver.find_element_by_link_text("下一页").click()
        # 解析网页
        html = BeautifulSoup(driver.page_source, 'html.parser')
        # 获取原图的url链接
        links =html.find('div', {'class': 'slist'}).find_all('img')
        # 遍历当页获得的所有原图链接
        for link in links:
            # 将原图存至当前目录下的jdimg 文件夹,以index命名,后缀名为图片原名的后三位,即jpg或者gif
            with open('baidu8/{}.{}'.format(index, link.get('src')[len(link.get('src'))-3: len(link.get('src'))]), 'wb') as jpg:
                jpg.write(requests.get("http://pic.netbian.com/" + link.get('src')).content)
            print("正在爬取第%s张图片" % index)
            index += 1
# 定义主函数
def main():

    getImage()

main()      

我们用记事本将此脚本写入,然后修改后缀名为py,然后在同级目录下创建一个文件夹用来存储图片,代码里的文件夹必须提前创建好,不然运行报错找不到文件夹,如图

Python爬取图片

我这里的文件夹就是用来存储图片的,已经存的满满当当

运行脚本

我们cmd进入命令行例如我这里就进入到d盘的test文件夹下,如图

Python爬取图片

我们输入py baidu.py来运行我们的脚本,前提我们配置好了环境变量,所以可以在任意位置运行python脚本,最后效果如图

Python爬取图片

总结