前言
从这篇文章开始,我们将通过连续的几篇文章来爬取某妹网(url :https://imoemei.com/)的所有小姐姐照片。借这个例子我们一起学习简易的python爬虫。
相关文章请看
从零开始的爬虫生涯(二):爬取小姐姐的照片②
从零开始的爬虫生涯(三):爬取小姐姐的照片③
需要爬取的页面展示
思路分析
1.页面源码分析
首先我们先查看页面源码
发现他的图片url全都放在一个类为entry-content的div块中,那么我们的目标就是取出p标签下的src,这个是每张图片的地址,然后再保存到电脑中。
2.爬虫思路
直接用request取到整个网页,再用BeatutifulSoup解析网页,取出所有的图片链接,最后保存下来
爬虫代码
1.开发环境
开发环境:win10 python3.6.8
使用工具:pycharm
使用第三方库:requests、os、BeatutifulSoup
2.代码分解
(1).引入库
import requests
import os
from bs4 import BeautifulSoup
(2).获取每张图片的地址
target_url = "https://imoemei.com/zipai/6288.html"
r = requests.get(url=target_url)
html = BeautifulSoup(r.text, 'html5lib')
entry_content = html.find('div', class_='entry-content')
img_list = entry_content.find_all('img')
for img in img_list:
img_url = img.get('src')
result = requests.get(img_url).content
(3).保存图片到指定文件夹
num = 0
name = html.find('h1').text
path = '图片'
if not os.path.exists(path):
os.mkdir(path)
f = open(path + '/' + name + str(num) + '.jpg', 'wb')
f.write(result)
num += 1
print('正在下载{}第{}张图片'.format(name, num))
3.整体代码
import requests
import os
from bs4 import BeautifulSoup
target_url = "https://imoemei.com/zipai/6288.html"
r = requests.get(url=target_url)
html = BeautifulSoup(r.text, 'html5lib')
entry_content = html.find('div', class_='entry-content')
img_list = entry_content.find_all('img')
img_urls = []
num = 0
name = html.find('h1').text
for img in img_list:
img_url = img.get('src')
result = requests.get(img_url).content
path = '图片'
if not os.path.exists(path):
os.mkdir(path)
f = open(path + '/' + name + str(num) + '.jpg', 'wb')
f.write(result)
num += 1
print('正在下载{}第{}张图片'.format(name, num))
爬取结果
可以看到,这次爬取非常成功