# 1 请求对象的定制
# 2 获取网页源码
# 3 下载
## 下载的是前十页的图片 每页的地址不一样
# 第一页地址
# https://sc.chinaz.com/tupian/hudietupian.html
# 第二页地址
# https://sc.chinaz.com/tupian/hudietupian_2.html
# 第三页地址
# https://sc.chinaz.com/tupian/hudietupian_3.html
# 引入模块
import urllib.request
from lxml import etree
#######
# 请求定制
def creat_request(page):
if (page == 1) :
url = 'https://sc.chinaz.com/tupian/hudietupian.html'
else:
# 拼接网站 注意页码转换
url = 'https://sc.chinaz.com/tupian/hudietupian_'+str(page)+'.html'
# 请求对象的定制
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'
}
request = urllib.request.Request(url = url,headers=headers)
return request
# 获取网页源码
def get_code(request):
response = urllib.request.urlopen(request)
code = response.read().decode('utf-8')
return code
def down_load(code):
# 下载图片 不是页面 通过网页源码解析图片--->使用xpath解析
# name_list 和 scr_list什么区别
tree = etree.HTML(code)
# 保存图片名
name_list = tree.xpath('//div/img/@alt')
###### !!!!!弄清楚这个地址怎么来的很重要!!!!!!!
scr_list = tree.xpath('//div/img/@data-original')
for i in range(len(name_list)):
name = name_list[i]
src = scr_list[i]
url = 'http:'+src
urllib.request.urlretrieve(url = url,filename='./hudie/' + name+'.jpg')
## 这里才是运行的过程 上面只是单独组装的模块
if __name__ == '__main__':
# 页码设置
start_page = int(input("请输入起始页码"))
end_page = int(input("请输入结束页码"))
for page in range(start_page, end_page+1):
# 1 请求对象的定制
request = creat_request(page)
# 2 获取网页源码
code = get_code(request)
# 3 下载
down_load(code)
图片自动保存下载
最新推荐文章于 2024-07-04 16:04:39 发布