知识点
环境
目标网址:
https://mm.enterdesk.com/bizhi/63899-347866.html
【付费VIP完整版】只要看了就能学会的教程,80集Python基础入门视频教学
注意: 在我们查看网页源代码的时候 (1. 控制台为准 2. 以右键查看网页源代码 3. 元素面板)
- 发送网络请求
- 获取网页源代码
- 提取想要的图片链接
css样式提取 xpath re正则表达式 bs4 - 替换所有的图片链接 换成大图
- 保存图片
爬虫代码
导入模块
import requests
import parsel
import os
发送网络请求
response = requests.get('https://mm.enterdesk.com/bizhi/64011-348522.html')
获取网页源代码
data_html = response_1.text
提取每个相册的详情页链接地址
selector_1 = parsel.Selector(data_html)
photo_url_list = selector_1.css('.egeli_pic_dl dd a::attr(href)').getall()
title_list = selector_1.css('.egeli_pic_dl dd a img::attr(title)').getall()
for photo_url, title in zip(photo_url_list, title_list):
print(f'*****************正在爬取{title}*****************')
response = requests.get(photo_url)
selector = parsel.Selector(response.text)
img_src_list = selector.css('.swiper-wrapper a img::attr(src)').getall()
if not os.path.exists('img/' + title):
os.mkdir('img/' + title)
替换所有的图片链接 换成大图
for img_src in img_src_list:
img_url = img_src.replace('_360_360', '_source')
保存图片 图片名字
img_data = requests.get(img_url).content
img_title = img_url.split('/')[-1]
with open(f'img/{title}/{img_title}', mode='wb') as f:
f.write(img_data)
print(img_title, '保存成功!!!')
翻页
page_html = requests.get('https://mm.enterdesk.com/').text
counts = parsel.Selector(page_html).css('.wrap.no_a::attr(href)').get().split('/')[-1].split('.')[0]
for page in range(1, int(counts) + 1):
print(f'------------------------------------正在爬取第{page}页------------------------------------')
发送网络请求
response_1 = requests.get(f'https://mm.enterdesk.com/{page}.html')
爬取结果
|