爬取某网几千张小姐姐私房照,准备好纸,别流鼻血,速速收藏
效果:
什么?看不清?
准备发车
模块下载:
pip install requests
pip install re
第一部分:定义要爬取的标签和正在爬取的页数
def UserUrl(theme,pagenum):url = "https://tuchong.com/rest/tags/%(theme)s/posts?page=%(pagenum)s&count=20&order=weekly" % {'theme': urllib.parse.quote(theme), 'pagenum': pagenum}#print(url)return url
第二部分:防止反扒
def GetHtmltext(url):head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}try:r = requests.get(url, headers=head, timeout=30)r.raise_for_status() #如果返回的状态码不是200,就到except中return rexcept:pass
第三部分:定义获取一个pagenum页面中的所有图集的URL链接的函数
def PictureFatherUrl(user_url):try:raw_data = GetHtmltext(user_url)j_raw_data = json.loads(raw_data.text) #将获取的网页转化为Python数据结构# print(j_raw_data)father_url = [] #将每个图集的url定义为father_url的一个列表for i in j_raw_data['postList']: #解析出的j_raw_data是一个多重字典,在这里先将postList字典的内容取出来father_url.append(i['url']) #然后再取出键为“url”的值return father_urlexcept:return
第四部分:定义获取一个图集中所有图片的url链接
def PictureUrl(url):try:html = GetHtmltext(url)#利用正则表达式来匹配url_list = list(re.findall('<img id="image\d+" class="multi-photo-image" src="([a-zA-z]+://[^\s]*)" alt="">', html.text))return url_listexcept:
第五部分:
#定义一个图集中所有图片的下载
def Download(url):url_list = PictureUrl(url)for i in url_list:r = GetHtmltext(i)file_name = os.path.join(save_path, i.split('/')[-1])with open(file_name, 'wb') as f:f.write(r.content)f.close()time.sleep(random.uniform(0.3, 0.5)) #为防止被反爬,在这里random了0.3-0.5的数,然后在下载一张图片后,sleep一下print('下载成功保存至 %s' % file_name)
主函数:
if __name__ == '__main__':theme = input("你选择的标签(如果你不知道有什么标签,去https://tuchong.com/explore/去看看有什么标签吧,输入不存在的标签无法下载哦):")pagenum_all = int(input("你要爬取的页数(不要太贪心哦,数字太大会被封IP的):"))save_path = os.path.join(theme)m = 0if not os.path.exists(save_path):os.makedirs(save_path)print("我知道你没有创建保存路径,我把文件存在和此脚本同样的路径下的叫做“ %s ”的文件夹下面了" % theme)for i in range(1, pagenum_all+1):n = 0m += 1print("正在下载第%d页,一共%d页" % (m, pagenum_all))user_url = UserUrl(theme, i)father_url = PictureFatherUrl(user_url)for j in father_url:n += 1print("正在下载第%d套图,一共%d套图" % (n, len(father_url)))Download(j)time.sleep(random.randint(6, 10)) #同样为了反爬,也random了6-10之间的数,更真实的模拟人的操作
完整源代码:
#coding=gbk
"""
学习群:970353786
作者:川川
时间:2021/8/11
"""
import os
import re
import json
import requests
import time
import urllib.parse
import random#定义要爬取的标签和正在爬取的页数
def UserUrl(theme,pagenum):url = "https://tuchong.com/rest/tags/%(theme)s/posts?page=%(pagenum)s&count=20&order=weekly" % {'theme': urllib.parse.quote(theme), 'pagenum': pagenum}#print(url)return url#利用requests使用get方法请求url,使用User-Agent是为了防止被反爬,这样使得我们的爬取行为更像人的行为
def GetHtmltext(url):head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}try:r = requests.get(url, headers=head, timeout=30)r.raise_for_status() #如果返回的状态码不是200,就到except中return rexcept:pass#定义获取一个pagenum页面中的所有图集的URL链接的函数
def PictureFatherUrl(user_url):try:raw_data = GetHtmltext(user_url)j_raw_data = json.loads(raw_data.text) #将获取的网页转化为Python数据结构# print(j_raw_data)father_url = [] #将每个图集的url定义为father_url的一个列表for i in j_raw_data['postList']: #解析出的j_raw_data是一个多重字典,在这里先将postList字典的内容取出来father_url.append(i['url']) #然后再取出键为“url”的值return father_urlexcept:return#定义获取一个图集中所有图片的url链接
def PictureUrl(url):try:html = GetHtmltext(url)#利用正则表达式来匹配url_list = list(re.findall('<img id="image\d+" class="multi-photo-image" src="([a-zA-z]+://[^\s]*)" alt="">', html.text))return url_listexcept:pass#定义一个图集中所有图片的下载
def Download(url):url_list = PictureUrl(url)for i in url_list:r = GetHtmltext(i)file_name = os.path.join(save_path, i.split('/')[-1])with open(file_name, 'wb') as f:f.write(r.content)f.close()time.sleep(random.uniform(0.3, 0.5)) #为防止被反爬,在这里random了0.3-0.5的数,然后在下载一张图片后,sleep一下print('下载成功保存至 %s' % file_name)#定义主函数
if __name__ == '__main__':theme = input("你选择的标签(如果你不知道有什么标签,去https://tuchong.com/explore/去看看有什么标签吧,输入不存在的标签无法下载哦):")pagenum_all = int(input("你要爬取的页数(不要太贪心哦,数字太大会被封IP的):"))save_path = os.path.join(theme)m = 0if not os.path.exists(save_path):os.makedirs(save_path)print("我知道你没有创建保存路径,我把文件存在和此脚本同样的路径下的叫做“ %s ”的文件夹下面了" % theme)for i in range(1, pagenum_all+1):n = 0m += 1print("正在下载第%d页,一共%d页" % (m, pagenum_all))user_url = UserUrl(theme, i)father_url = PictureFatherUrl(user_url)for j in father_url:n += 1print("正在下载第%d套图,一共%d套图" % (n, len(father_url)))Download(j)time.sleep(random.randint(6, 10)) #同样为了反爬,也random了6-10之间的数,更真实的模拟人的操作
当然,难道我的心只有小姐姐私房照?NONONO!你只要输入该网任意一个标签的都可给下载下来。
喜欢就点个赞吧,yeah!!最后贴上我的交流qun:970353786
,欢迎各位小白大佬加入这个万能编程之家。
爬取某网几千张小姐姐私房照,准备好纸,别流鼻血,速速收藏相关推荐
- 【Python】多线程爬取某站高颜值小姐姐照片(共1.62GB)
文章目录 写在前面 目标网站 依赖模块 爬虫思路 完整代码 爬虫结果 单图预览 多图预览 引用参考 写在前面 本文使用Python编写爬虫脚本,实现多线程爬取唯美女生网站高颜值小姐姐的所有照片. 目标 ...
- Python爬虫利用18行代码爬取虎牙上百张小姐姐图片
Python爬虫利用18行代码爬取虎牙上百张小姐姐图片 下面开始上代码 需要用到的库 import request #页面请求 import time #用于时间延迟 import re #正则表达式 ...
- Python网络爬虫实战:世纪佳缘爬取近6万条小姐姐数据后发现惊天秘密
翻着安静到死寂的聊天列表,我忽然惊醒,不行,我们不能这样下去,光羡慕别人有什么用,我们要行动起来,去找自己的幸福!!! 我也想"谈不分手的恋爱" !!!内牛满面!!! 注册登陆一气 ...
- denied 登陆后access_Python网络爬虫实战:世纪佳缘爬取近6万条小姐姐数据后发现惊天秘密...
翻着安静到死寂的聊天列表,我忽然惊醒,不行,我们不能这样下去,光羡慕别人有什么用,我们要行动起来,去找自己的幸福!!! 我也想"谈不分手的恋爱" !!!内牛满面!!! 注册登陆一气 ...
- python爬取无水印抖音小姐姐视频(2018最新,含Pyqt客户端)
各位小伙伴,之前一段时间迷上了抖音小姐姐视频,但是下载的视频都有水印,于是自己用Python 写了个爬取小姐姐视频的工具,大家可以直接拷贝到自己编译器上运行.此外,我还利用pyqt5写了个操作界面,这 ...
- Python爬虫实战:世纪佳缘爬取近6万条小姐姐数据!脱单的有望!
马上又是一年双十一了,不知道从什么时候开始,双十一从"光棍节"变成了"双十一购物狂欢节",最后一个属于单身狗的节日也成功被攻陷,成为了情侣们送礼物秀恩爱的节日. ...
- 2020ChinaJoy全是小姐姐,程序员小伙当场流鼻血
看到这篇水文的时候你应该知道了,你们的敖丙这周末又偷懒没写技术文和拍视频,偷偷跑去上海浪了两天,不过技术文我工作日还是得熬夜搞一篇出来,女读者的面试视频剪辑进度10%了,这周应该可以结束. 再说你们以 ...
- python爬取知乎上的小姐姐
知乎上的东西质量都很好,有些问题下会有很多很好的回答,其中就有些关于图片的. 比如: 你见过最漂亮的女生长什么样? 平常人可以漂亮到什么程度? 有没有第一次见就让人震惊的手机壁纸? 有哪些图片适合做电 ...
- 爬取某直播网站首页小姐姐的照骗
#使用正则表达式取出网页中图片url并下载图片 import time import re import requests import multiprocessing import osdef do ...
最新文章
- android IntentService生命周期问题
- linux中文件的编辑 写入 读取 光标的位置 以及相应的补充
- 【AI白身境】深度学习中的数据可视化
- 对于新手来说,Python 中有哪些难以理解的概念?我似乎明白了
- dos中特殊符号命令的应用
- postgresql 高可用 etcd + patroni 之二 patroni
- 事务的状态(状态模式)
- [vim]在vim中格式化xml
- 查找当前地形位置上的贴图信息
- 电钻有刷好还是无刷好_高中物理好的来看看,永磁同步直流电机是怎样实现无刷驱动的?...
- 详解如何在ubuntu上安装node.js
- 机器学习入门:线性回归及梯度下降(附matlab代码)
- AppDelegate文件下各方法的用法:(应用程序挂起、复原与终止)
- 人工智能与大数据就业前景_大数据专业和人工智能专业哪个前景更好
- PCL-ICP(IterativeClosestPoint)源码解析
- ffplay flv mp4 转_C#调用FFmpeg将flv视频格式转换成mp4格式
- RD client、远程桌面、smb等远程相关的使用与注意
- 繁体中文和简体中文编码
- SpringCloud学习笔记3:Spring Cloud Netflix 组件(五大神兽)
- android usb attached,Android USB主机模式服务 – 基于USB_DEVICE_ATTACHED启动