#导入相应模块
import requests
from lxml import etree
import urllib.request
#网站主连接,用作后面的拼接
url_main='http://www.tu11.com'
#使用 input,让用户可以自定义爬取页数 6
x=input('请输入页数,注意,爬取的页数要比输入的页数少一页,如要爬取五页,请输入 6 :')
#循环输出页数
for num in range(1,int(x)):
#拼接完整页面
url = 'http://www.tu11.com/neihantupian/list_40_' + str(num) + '.html'
#请求头,模拟浏览器登录
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3423.2 Mobile Safari/537.36'}
# 使用 requests 访问页面
html = requests.get(url, headers=headers).content
# 使用 lxml 中的 etree.HTML 解析页面
xp_html = etree.HTML(html)
# 使用 xpath 精准定位该页每组图片的链接
imgurls = xp_html.xpath('//*[@id="masonryList"]/li/div/a/@href')
# 循环输出每组图片的连接
for imgurl in imgurls:
# 因该网站爬取的每组连接不带头部,故此处需要拼接成完整的链接
imgurl = url_main + imgurl
# 重复上述步骤,访问页面,解析,精准定位,此处定位的就是每张图片的连接了
img_html = requests.get(imgurl, headers=headers).content
xp_img_html = etree.HTML(img_html)
img_urls = xp_img_html.xpath('//div/p/img/@src')
# 定位一组图片的标题,下载时作为名字
imgtitle = xp_img_html.xpath('/html/body/section/div[5]/p/text()')
# 一组图片标题只有一个,但图片有多张,故定义一个整数变量,循环 +1 输出,跟图片标题拼接为每张图片的名字
num = 0
for img_url in img_urls:
num = num + 1
#拼接图片的名字
name = str(imgtitle) + str(num)
# 下载图片,使用 urllib.request.urlretrieve 下载图片,保存
try:
urllib.request.urlretrieve(img_url, 'F:\Picture\xxoo\%s.jpg' % name)
print(name + '下载成功,地址:' + img_url)
# 若是失败,抛出异常,提示错误
except Exception as e:
print(name + '下载失败,地址:' + img_url)
#全部下载完成之后提示下载完成
print('下载完成')
近期热议
推荐标签 标签
-
Bootstrap
18 引用 • 33 回帖 • 659 关注
Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。
-
LeetCode
209 引用 • 72 回帖
LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!
-
Solidity
3 引用 • 18 回帖 • 399 关注
Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。
-
SQLServer
21 引用 • 31 回帖 • 1 关注
SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。
-
React
192 引用 • 291 回帖 • 385 关注
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
-
ngrok
7 引用 • 63 回帖 • 624 关注
ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。
-
ZeroNet
1 引用 • 21 回帖 • 638 关注
ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。
-
星云链
3 引用 • 16 回帖
星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网
-
游戏
176 引用 • 815 回帖
沉迷游戏伤身,强撸灰飞烟灭。
-
Android
334 引用 • 323 回帖 • 2 关注
Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。
-
Sphinx
1 引用 • 211 关注
Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。
-
人工智能
133 引用 • 189 回帖
人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。
-
Telegram
5 引用 • 35 回帖 • 2 关注
Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。
-
Mac
166 引用 • 595 回帖 • 1 关注
Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。
-
SendCloud
2 引用 • 8 回帖 • 483 关注
SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。
-
安全
199 引用 • 816 回帖
安全永远都不是一个小问题。
-
Rust
58 引用 • 22 回帖
Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。
-
Python
543 引用 • 672 回帖
Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。
-
反馈
123 引用 • 911 回帖 • 245 关注
Communication channel for makers and users.
-
BookxNote
1 引用 • 1 回帖
BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。
笔记整理交给我,一心只读圣贤书。
- IPFS
- BND
-
API
77 引用 • 430 回帖
应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
-
强迫症
15 引用 • 161 回帖
强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。
-
持续集成
15 引用 • 7 回帖 • 1 关注
持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
-
C++
107 引用 • 153 回帖 • 3 关注
C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。
-
服务器
125 引用 • 588 回帖
服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于