前言
自从学习编程以来,总是听别人说什么爬虫爬虫的,爬这爬那,我心想老是扒拉来扒拉去不累吗,有啥好爬的,又没啥子用,前两天无聊就想看看python爬取网站的图片到底是什么鬼,就从网上开始学习,从下载python到配置,从寻找喜欢的网站到爬的盆满钵满,现在我就来总结一下。
准备
1、下载一个python安装并配置环境变量,跟java差不多。
官网下载地址:https://www.python.org/downloads/windows/ 点击下载
下载installer的,然后安装直接下一步就好,也可以自行选择下载的位置,最后配置环境变量
配置环境变量,将python和Scripts都配置上
验证是否配置成功,cmd打开命令行,输入python -V,如图证明配置环境变量成功
2、脚本
# 导入必要的包
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,然后在同级目录下创建一个文件夹用来存储图片,代码里的文件夹必须提前创建好,不然运行报错找不到文件夹,如图
我这里的文件夹就是用来存储图片的,已经存的满满当当
运行脚本
我们cmd进入命令行例如我这里就进入到d盘的test文件夹下,如图
我们输入py baidu.py来运行我们的脚本,前提我们配置好了环境变量,所以可以在任意位置运行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:
# 将原图存至当前目录下的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 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
Python学习路线
这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
学习软件
Python常用的开发软件,会给大家节省很多时间。
学习视频
编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
100道练习题
实战案例
光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。