Python爬取网站图片、前方高能——未满18岁勿学

Python爬取网站图片、前方高能——未满18岁勿学_第1张图片

前言
自从学习编程以来,总是听别人说什么爬虫爬虫的,爬这爬那,我心想老是扒拉来扒拉去不累吗,有啥好爬的,又没啥子用,前两天无聊就想看看python爬取网站的图片到底是什么鬼,就从网上开始学习,从下载python到配置,从寻找喜欢的网站到爬的盆满钵满,现在我就来总结一下。
准备
1、下载一个python安装并配置环境变量,跟java差不多。
官网下载地址:https://www.python.org/downloads/windows/点击下载
Python爬取网站图片、前方高能——未满18岁勿学_第2张图片
下载installer的,然后安装直接下一步就好,也可以自行选择下载的位置,最后配置环境变量
配置环境变量,将python和Scripts都配置上
Python爬取网站图片、前方高能——未满18岁勿学_第3张图片
验证是否配置成功,cmd打开命令行,输入python -V,如图证明配置环境变量成功
Python爬取网站图片、前方高能——未满18岁勿学_第4张图片
2、脚本
Python爬取网站图片、前方高能——未满18岁勿学_第5张图片

# 导入必要的包
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爬取网站图片、前方高能——未满18岁勿学_第6张图片
我这里的文件夹就是用来存储图片的,已经存的满满当当
运行脚本
我们cmd进入命令行例如我这里就进入到d盘的test文件夹下,如图
Python爬取网站图片、前方高能——未满18岁勿学_第7张图片
我们输入py baidu.py来运行我们的脚本,前提我们配置好了环境变量,所以可以在任意位置运行python脚本,最后效果如图

Python爬取网站图片、前方高能——未满18岁勿学_第8张图片

** 最新调整**

最近由于很多同学反映下载的图片打不开,应该是有所更新,所有我重新调整了一次源码,现在源码如下。

# 导入必要的包
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:

            # 将原图存至当前目录下的baidu8文件夹,以index命名,后缀名为jpg
            with open('baidu8/{}.jpg'.format(index), 'wb') as jpg:
                jpg.write(requests.get("http://pic.netbian.com/" + link.get('src')).content)

            print("正在爬取第%s张图片" % index)
            index += 1
# 定义主函数
def main():

    getImage()

main()

总结
技术是把双刃剑,希望大家合理运用技术,下一次分享爬取小视频的内容,最后说一句,老铁早点睡啊。

你可能感兴趣的:(python,python,爬虫,美女,图片,脚本)