最近学习 python 爬虫,算是刚刚踏入门…查阅各种资料后终于可以写出一个非常简单的爬虫了 ♥
实现一个简单的爬虫,爬取百度贴吧图片
#!/usr/bin/python
# coding:utf-8
# 实现一个简单的爬虫,爬取百度贴吧图片
import requests
import re
import time
# 图片保存路径
SAVE_PATH = "./imgs/"
# 根据url获取网页html内容
def getHtmlContent(url):
page = requests.get(url)
page.encoding = "UTF-8"
return page.text
# 从html中解析出所有jpg图片的url
def getJPGs(html):
# 解析jpg图片url的正则
jpgReg = re.compile(r'<img class="BDE_Image" src="(.+?\.jpg)"')
# 解析出jpg的url列表
jpgs = re.findall(jpgReg,html)
return jpgs
def load_img(imgurl, file):
'''下载单张图片到制定的文件夹下'''
name = imgurl.split('/')[-1]
file = "{}{}".format(file,name)
item = requests.get(imgurl).content
with open(file,'wb') as f:
f.write(item)
# 批量下载图片,默认保存到当前目录下
def batchDownloadJPGs(imgUrls):
# 判断路径是否存在
if issetDir(SAVE_PATH) != True:
print("图片保存文件夹创建失败")
exit()
path = SAVE_PATH
# 数量统计
count = 1
for url in imgUrls:
load_img(url, path)
# downloadJPG(url,''.join([path,'{0}.jpg'.format(count)]))
print('下载完成第{0}张图片'.format(count))
count += 1
# 目录不存在则创建
def issetDir(path):
import os
path=path.strip()
# 去除尾部 \ 符号
path=path.rstrip("\\")
isExists = os.path.exists(path)
# 判断结果
if not isExists:
os.makedirs(path)
return True
else:
return True
# 封装:从百度贴吧网页下载图片
def download(url):
# 记录执行时间
start_t = time.time()
html = getHtmlContent(url)
jpgs = getJPGs(html)
batchDownloadJPGs(jpgs)
use_time = (time.time() - start_t)
print("单进程需要{} 秒".format(use_time))
def main():
url = 'http://tieba.baidu.com/p/2256306796'
download(url)
if __name__ == '__main__':
main()
getHtmlContent
使用 requests
模块读取链接内容
getJPGs
使用正则解析出所有jpg图片url
batchDownloadJPGs
将正则匹配的所有图片下载
issetDir
检查图保存路径是否存在,不存在则创建