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 ...
随机推荐
- [MRCTF2020]Ez_bypass WP
首先打开页面 他提示说f12里面有东西,于是直接ctrl+u 查看源代码 I put something in F12 for you include 'flag.php'; $flag='MRCTF ...
- Latex中也能展示动态图?
技术背景 在学术领域,很多文档是用Latex做的,甚至有很多人用Latex Beamer来做PPT演示文稿.虽然在易用性和美观等角度来说,Latex Beamer很大程度上不如PowerPoint,但 ...
- 5.第四篇 Etcd存储组件高可用部署
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483792&idx=1&sn=b991443c ...
- CentOS6 配置阿里云 NTP 服务
本文以Centos 6.5为例介绍如何修改Linux实例时区,以及开启和配置Linux NTP服务,保证实例本地时间精确同步. 前提条件 NTP服务的通信端口为UDP 123,设置NTP服务之前请确保 ...
- 05_Java基础知识
Java基础知识 一. Java的语言特点 面向对象(贴近人类思维模式,模拟现实世界,解决现实问题) 简单性(自动内存管理机制,不易造成内存溢出:简化流程处理.语义清晰) 跨平台(操作系统.服务器.数 ...
- IC入门课第五课作业:完善 Microblog 前端(1、显示发布者的名字;2、增加新UI、3、关注其他学员的 canister)
上周完成了 IC 入门课程第五课的作业 现将答案贴出,欢迎同学们参考,禁止抄袭作业哦 课程作业 (完善 microblog 前端) 1. 显示消息的发布者名字 a. 给 Message 增加 auth ...
- 新电脑搭建vue项目步凑
电脑必备软件集合: Chrome,FF Nodejs VS code (ATOM...) GIT || SVN 插件类:postman 美术类:ps,pxcock等,自己喜欢的就行 翻译类:有道词典 ...
- 线上服务宕机,码农试用期被毕业,原因竟是给MySQL加个字段
1. 问题:怎么给线上表加字段? 工作中最常遇到的问题,怎么给线上频繁使用的大表添加字段? 比如:给下面的用户表(user)添加年龄(age)字段. CREATE TABLE `user` ( `id ...
- IOC常用的创建对象方式
通过无参构造方法来创建 1.User.java public class User { private String name; public User() { System.out.println( ...
- 11.MongoDB系列之连接副本集
1. Python连接副本集 from pymongo import MongoClient from bson.codec_options import CodecOptions from retr ...