深夜爬取4k图片

  • 下载流程
  1. 定义page_text函数,对第一页地址发送get请求,因为页面数据在页面源代码都能查到,所以发送get 请求就ok!,注意要进行编码格式设置,可以去源代码查看,
  2. 定义parse_data函数,利用xpath解析图片所对应的url,以及其名字,把解析到的数据都添加到列表中
  3. 定义downloadPic函数,先利用os模块,如果有这个目录就不创建,没有就创建,用for循环对刚才添加到列表中的数据(数据在datas中)进行遍历,取得名字,和地址,再对地址发起请求,这个是要下载图片,图片保存方式为二进制格式,所以这个的请求用content,最后用上下文管理器进行保存到目录中,注意:用了with 上下文管理器,最后我们就不必对文件进行关闭
  4. 主函数主要是传递一个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的更多相关文章

  1. Python爬虫爬取全书网小说,程序源码+程序详细分析

    Python爬虫爬取全书网小说教程 第一步:打开谷歌浏览器,搜索全书网,然后再点击你想下载的小说,进入图一页面后点击F12选择Network,如果没有内容按F5刷新一下 点击Network之后出现如下 ...

  2. python爬虫:爬取慕课网视频

    前段时间安装了一个慕课网app,发现不用注册就可以在线看其中的视频,就有了想爬取其中的视频,用来在电脑上学习.决定花两天时间用学了一段时间的python做一做.(我的新书<Python爬虫开发与 ...

  3. python爬虫爬取赶集网数据

    一.创建项目 scrapy startproject putu 二.创建spider文件 scrapy genspider  patubole patubole.com   三.利用chrome浏览器 ...

  4. Python爬虫 爬取百合网的女人们和男人们

    学Python也有段时间了,目前学到了Python的类.个人感觉Python的类不应称之为类,而应称之为数据类型,只是数据类型而已!只是数据类型而已!只是数据类型而已!重要的事情说三篇. 据书上说一个 ...

  5. 用Python爬虫爬取广州大学教务系统的成绩(内网访问)

    用Python爬虫爬取广州大学教务系统的成绩(内网访问) 在进行爬取前,首先要了解: 1.什么是CSS选择器? 每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code ...

  6. 使用Python爬虫爬取网络美女图片

    代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...

  7. Python爬虫|爬取喜马拉雅音频

    "GOOD Python爬虫|爬取喜马拉雅音频 喜马拉雅是知名的专业的音频分享平台,用户规模突破4.8亿,汇集了有声小说,有声读物,儿童睡前故事,相声小品等数亿条音频,成为国内发展最快.规模 ...

  8. Python爬虫 - 爬取百度html代码前200行

    Python爬虫 - 爬取百度html代码前200行 - 改进版,  增加了对字符串的.strip()处理 源代码如下: # 改进版, 增加了 .strip()方法的使用 # coding=utf-8 ...

  9. python爬虫爬取内容中,-xa0,-u3000的含义

    python爬虫爬取内容中,-xa0,-u3000的含义 - CSDN博客 https://blog.csdn.net/aiwuzhi12/article/details/54866310

  10. python爬虫—爬取英文名以及正则表达式的介绍

    python爬虫—爬取英文名以及正则表达式的介绍 爬取英文名: 一.  爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个cs ...

随机推荐

  1. 无线WIFI连接

    家里的无线网络覆盖一直不全, 最近想改善一下.买了一个mercury的小路由器MW156RM 其实,我还是不理解WDS, repeater, bridge模式有什么区别. 目标就是实现最少的改动,保持 ...

  2. 使用sonarqube对java项目进行分析

    目前有两种办法,第一种是使用SonarQube-Scanner-Maven,第二种是结合gitlab-ci进行 前提条件:已安装并启动sonarqube,知道访问地址和登录的用户名及密码,具体参考文档 ...

  3. 使用docker-compose方式安装redash

    转载自:https://anjia0532.github.io/2019/07/08/redash/ ## 安装必要工具 apt install -y pwgen python-pip pip ins ...

  4. k8s中安装rabbitmq集群

    官方文档地址:https://www.rabbitmq.com/kubernetes/operator/quickstart-operator.html 要求 1.k8s版本要1.18及其以上 2.能 ...

  5. PostgreSQL 语法

    进入命令行工具,我们可以使用 \help 来查看各个命令的语法 : postgres-# \help <command_name> 例如,我们查看下 select 语句的语法: postg ...

  6. PostgreSQL 创建表格

    PostgreSQL 使用 CREATE TABLE 语句来创建数据库表格. 语法 CREATE TABLE 语法格式如下: CREATE TABLE table_name( column1 data ...

  7. Lock 锁底层实现

    ★ 1.讲讲 Lock 锁 是一个接口,有三个实现类,分别是常用的 可重入锁,读锁.写锁.常用的是可重入锁. 加锁使用lock() 方法,解锁使用 unlock() 方法.Lock的底层是 AQS+C ...

  8. 自定义ListView下拉刷新上拉加载更多

    自定义ListView下拉刷新上拉加载更多 自定义RecyclerView下拉刷新上拉加载更多 Listview现在用的很少了,基本都是使用Recycleview,但是不得不说Listview具有划时 ...

  9. Windows Socket 接口简介

    Windows Socket接口是Windows下网络编程的接口,在介绍Windows Socket接口之前,首先要简单介绍一下TCP/IP协议和描述网络系统架构的 OSI模型,以及TCP/IP模型 ...

  10. AspNetCore中 使用 Grpc 简单Demo

    为什么要用Grpc 跨语言进行,调用服务,获取跨服务器调用等 目前我的需要使用 我的抓取端是go 写的 查询端用 Net6 写的 导致很多时候 我需要把一些临时数据写入到 Redis 在两个服务器进行 ...