Python爬虫爬取彼岸网4K Picture
深夜爬取4k图片

- 下载流程
- 定义page_text函数,对第一页地址发送get请求,因为页面数据在页面源代码都能查到,所以发送get 请求就ok!,注意:要进行编码格式设置,可以去源代码查看,
- 定义parse_data函数,利用xpath解析图片所对应的url,以及其名字,把解析到的数据都添加到列表中
- 定义downloadPic函数,先利用os模块,如果有这个目录就不创建,没有就创建,用for循环对刚才添加到列表中的数据(数据在datas中)进行遍历,取得名字,和地址,再对地址发起请求,这个是要下载图片,图片保存方式为二进制格式,所以这个的请求用content,最后用上下文管理器进行保存到目录中,注意:用了with 上下文管理器,最后我们就不必对文件进行关闭
- 主函数主要是传递一个url 参数给page_text进行分页的操作
import requests, os
from lxml import etree
# UA伪装
headers = {
'UserAgent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"
}
# 发送请求,获取网页源代码
def page_text(url):
response = requests.get(url=url, headers=headers)
response.encoding = "gbk"
page_data = response.text
parse_data(page_data)
# 解析数据
def parse_data(page_data):
tree = etree.HTML(page_data)
list_data_li = tree.xpath('//div[@class="slist"]/ul/li')
# print(list_data)
# 用来存放解析到的图片地址
datas = []
# 进行遍历列表
for li in list_data_li:
# 拼接完整的图片地址
li_picture = 'https://pic.netbian.com' + li.xpath('./a/img/@src')[0]
#解析图片名字
pic_name = li.xpath('./a/b/text()')[0]
dic = {
'title': pic_name,
'url': li_picture
}
datas.append(dic)
return downloadPic(datas)
# 下载图片,持久化存储
def downloadPic(datas):
if not os.path.exists('./IMG'):
os.mkdir('IMG')
for i in datas:
# 图片名字
title = i['title']
# 图片地址
url = i['url']
# print(url,title)
response = requests.get(url=url, headers=headers)
response.encoding = "gbk"
# 由于是图片所以响应的应该是二进制格式
page_content = response.content
# 持久化存储
with open('IMG/' + title + '.jpg', 'wb') as fp:
print(f'正在下载:{title}.jpg')
fp.write(page_content)
print('下载完毕!')
if __name__ == "__main__":
# 先搞定第一页的数据
print('------------------正在准备下载第 1 页----------------"')
page_text('https://pic.netbian.com/4kdongman/')
# 实现分页操作,下载多页数据
ensure =input('第一张页面已经下载完了,是否继续下载呢\n'
'继续请输入y,取消请输入n:')
if ensure == 'y' or 'Y':
page_num =int(input('您想要下载到第几页数呢:'))
for i in range(2, page_num + 1):
print("------------------正在准备下载第 %d 页----------------"%i)
page_text('https://pic.netbian.com/4kdongman/index_{}.html'.format(i))
else:
print('您的服务到此结束')
exit()
Python爬虫爬取彼岸网4K Picture的更多相关文章
- Python爬虫爬取全书网小说,程序源码+程序详细分析
Python爬虫爬取全书网小说教程 第一步:打开谷歌浏览器,搜索全书网,然后再点击你想下载的小说,进入图一页面后点击F12选择Network,如果没有内容按F5刷新一下 点击Network之后出现如下 ...
- python爬虫:爬取慕课网视频
前段时间安装了一个慕课网app,发现不用注册就可以在线看其中的视频,就有了想爬取其中的视频,用来在电脑上学习.决定花两天时间用学了一段时间的python做一做.(我的新书<Python爬虫开发与 ...
- python爬虫爬取赶集网数据
一.创建项目 scrapy startproject putu 二.创建spider文件 scrapy genspider patubole patubole.com 三.利用chrome浏览器 ...
- Python爬虫 爬取百合网的女人们和男人们
学Python也有段时间了,目前学到了Python的类.个人感觉Python的类不应称之为类,而应称之为数据类型,只是数据类型而已!只是数据类型而已!只是数据类型而已!重要的事情说三篇. 据书上说一个 ...
- 用Python爬虫爬取广州大学教务系统的成绩(内网访问)
用Python爬虫爬取广州大学教务系统的成绩(内网访问) 在进行爬取前,首先要了解: 1.什么是CSS选择器? 每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code ...
- 使用Python爬虫爬取网络美女图片
代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...
- Python爬虫|爬取喜马拉雅音频
"GOOD Python爬虫|爬取喜马拉雅音频 喜马拉雅是知名的专业的音频分享平台,用户规模突破4.8亿,汇集了有声小说,有声读物,儿童睡前故事,相声小品等数亿条音频,成为国内发展最快.规模 ...
- Python爬虫 - 爬取百度html代码前200行
Python爬虫 - 爬取百度html代码前200行 - 改进版, 增加了对字符串的.strip()处理 源代码如下: # 改进版, 增加了 .strip()方法的使用 # coding=utf-8 ...
- python爬虫爬取内容中,-xa0,-u3000的含义
python爬虫爬取内容中,-xa0,-u3000的含义 - CSDN博客 https://blog.csdn.net/aiwuzhi12/article/details/54866310
- python爬虫—爬取英文名以及正则表达式的介绍
python爬虫—爬取英文名以及正则表达式的介绍 爬取英文名: 一. 爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个cs ...
随机推荐
- setw()
setw() 头文件是 #include<iomanip> setw(2)是下一个数据输出宽度为2,超过2则以实际输出为准,不足2补空格.仅对下一个数据的输出有效,即只有一次效果.(set ...
- Kubernetes 监控:Prometheus Operator + Thanos ---实践篇
具体参考网址:https://www.cnblogs.com/sanduzxcvbnm/p/16291296.html 本章用到的yaml文件地址:https://files.cnblogs.com/ ...
- proxysql cluster 的搭建
文章转载自:https://blog.51cto.com/lee90/2298804 官方文档: https://proxysql.com/blog/proxysql-cluster 环境架构 在一主 ...
- 8_Quartz
一. 引言 1.1 简介 Quartz: http://www.quartz-scheduler.org/ 是一个 定时任务调度框架 ,比如我们遇到这样的问题 想在30分钟后, 查看订单是否支付, 未 ...
- Java调用C++动态链接库——Jni
最近项目需要,将C++的算法工程编译成动态链接库,交给 Java后台当作函数库调用.就去了解了下Jni.使用起来还是比较方便的. 1. 首先编写Java的调用类.例如: public clas ...
- Ruoyi字典源码学习
此文章属于ruoyi项目实战系列 使用目的 什么是字典数据:具体的值(0,1,"Y","N"),对应具体的业务逻辑("男","女& ...
- 两将军问题和TCP三次握手
两将军问题,又被称为两将军悖论.两军问题, 是一个经典的计算机思想实验. 首先, 为避免混淆,我们需要认识到两将军问题虽然与拜占庭将军问题相关,但两者不是一个东西.拜占庭将军问题是一个更通用的两将军问 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:7、微服务节点的监控与告警。
系统目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- JavaScript基本语法(JavaScript代码嵌入方式与声明和使用变量)
.JavaScript代码嵌入方式 #①HTML文档内 JavaScript代码要写在script标签内 script标签可以写在文档内的任意位置 为了能够方便查询或操作HTML标签(元素)scrip ...
- JSP中request对象的简单实用,实现简单的注册以及个人信息的展示
JSP中Request对象的使用 概述:request对象主要用于接收客户端发送来的请求信息,客户端的请求信息被封装在request对象中,通过它可以了解到客户的需求,然后做出响应.主要封装了用户提交 ...