豆瓣上征婚交友的小姐姐们
文 | 某某白米饭
来源:Python 技术「ID: pythonall」
派森酱在刷豆瓣的时候发现,豆瓣上居然还有一个叫我被豆油表白了的交友话题,阅读量居然高达 8087734 次,拥有 1000+ 篇话题,几乎每篇平均被阅读了 8000+ ,看了一下里面的小姐姐照片还挺多的。今天我们就用爬虫把他们下载下来。
首先在浏览器中登录豆瓣,打开话题广场在右侧有一个分类查看话题点开情感。
打开后就是下面这个样子的。
爬虫开始
打开控制面板 F12, 找到带 items 的连接,然后复制整个 Request Headers 到代码中,采用复制 cookie 的方式登录豆瓣。
url_basic = 'https://m.douban.com/rexxar/api/v2/gallery/topic/18306/items?from_web=1&sort=hot&start={}&count=20&status_full_text=1&guest_only=0&ck=GStY'headers = { 'Accept': 'application/json, text/javascript, */*; q=0.01','Accept-Encoding': 'gzip, deflate, br','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Content-Type': 'application/x-www-form-urlencoded','Cookie': 'bid=n7vzKfXLoUA; douban-fav-remind=1; ll="108296"; __utmc=30149280; __utmz=30149280.1624276858.2.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); ap_v=0,6.0; gr_user_id=ca8b9156-1926-4c82-9dda-27fc7f7ad51b; __utma=30149280.66080894.1623848440.1624276858.1624282580.3; __utmt=1; dbcl2="157316158:e4ojS8paSUc"; ck=GStY; push_doumail_num=0; __utmv=30149280.15731; frodotk="a187943e3a17e8bbe496bcbaae47ba31"; push_noty_num=0; __utmb=30149280.11.10.1624282580','Host': 'm.douban.com','Origin': 'https://www.douban.com','Referer': 'https://www.douban.com/gallery/topic/18306/','sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"','sec-ch-ua-mobile': '?0','Sec-Fetch-Dest': 'empty','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-site','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36'}
url_basic 就是可以返回列表 json 的地址,只有 start 参数在随鼠标下滑翻页改变。
for i in range(1,35):res = requests.get(url=url_basic.format(i * 20), headers=headers)res_json = json.loads(res.text)index = 0for item in res_json.get('items'):target = item.get('target')status = target.get('status')print("这里是第 {} 个".format((i - 1) * 20 + index));index = index + 1with open('douban.txt', 'a+') as f:f.write(json.dumps(status) + '\n');sleeptime=random.randint(1, 10)time.sleep(sleeptime)
这里把下载下来的数据缓存在 txt 文件里面。
图表
交友地图
先提取小姐姐的地址做一个热力图,看看哪边的小姐姐最多。
需要安装 cpca 第三方库,cpca 是一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块。简单来说就是将交友文字中出现的市区名称转换为省份名称。
pip install cpca
windows 上安装可能出现 Building wheel for pyahocorasick (setup.py) ... error
错误,需要安装 Microsoft Visual C++ Build Tools
后再 pip install cpca。
第二个安装的是 pyecharts 第三方库,用来可视化热力图。
pip install pyecharts
可以看出华东和华南交友的小姐姐要比华北和西部的小姐姐多很多,看起来单身小姐姐都集中在一线城市及其周边。
Python 代码如下:
from pyecharts.charts import Geo
from pyecharts.globals import ChartTypeaddr_dic = {}
file_object = open('douban.txt','r')
try:for line in file_object:item = json.loads(line)if item == None:continueauthor = item['author']text = item['text']addr_transform = cpca.transform([text])addr = Noneif addr_transform['省'].str.split(' ')[0] != None:addr = addr_transform['省'].str.split(' ')[0][0].rstrip('省')//这里提取创作者里面的地址if addr is None and author['loc'] is not None:cpca.transform([author['loc']['name']])if addr_transform['省'].str.split(' ')[0] != None:addr = addr_transform['省'].str.split(' ')[0][0].rstrip('省')//这个地址要转换一下,不然 echarts 不认if addr is not None:if addr == '广西壮族自治区':addr = '广西'if addr == '香港特别行政区':addr = '香港'if addr == '澳门特别行政区':addr = '澳门'addr_dic[addr] = addr_dic.get(addr, 0) + 1finally:file_object.close()// 小姐姐热力图
(Geo().add_schema(maptype="china").add("",[list(z) for z in zip(list(addr_dic.keys()), list(addr_dic.values()))],type_=ChartType.HEATMAP,).set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(visualmap_opts=opts.VisualMapOpts(),).render("热力图.html"))
词云
词云可以用来展示小姐姐们自身的情况和对对方的要求。用 pyecharts 生成词云和用 jieba 第三方库分词。
安装一下 jieba 第三方库。
pip install jieba
Python 代码如下:
import jieba
from collections import Counter
from pyecharts.charts import WordCloudfor line in file_object:item = json.loads(line)if item == None:continuetext = item['text']seg_list = jieba.cut(text, cut_all=False)text_list.extend(seg_list)# 词频统计,使用Count计数方法
words_counter = Counter(text_list)
# 将Counter类型转换为列表
words_list = words_counter.most_common(500)
(WordCloud().add(series_name="", data_pair=words, word_size_range=[20, 66]).render("词云.html")
)
照片下载
最后来下载小姐姐照片吧,直接用 request.get() 方法请求 images
里面的地址。
for line in file_object:item = json.loads(line)if item == None:continueimages = item['images']id = item['id']index = 0for i in images:index = index + 1url = i.get('large').get('url')r = requests.get(url);with open('./image/{}-{}.jpg'.format(id, index), 'wb') as f:f.write(r.content)
总结
这篇爬虫到这里就结束了,派森酱在这里祝愿朋友们都能找到自己的良人。
PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!
老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!
【代码获取方式】
识别文末二维码,回复:210625
豆瓣上征婚交友的小姐姐们相关推荐
- 用Python搞定豆瓣上征婚交友的小姐姐们~
文 | 某某白米饭 来源:Python 技术「ID: pythonall」 大家好,我是菜鸟哥! 派森酱在刷豆瓣的时候发现,豆瓣上居然还有一个叫我被豆油表白了的交友话题,阅读量居然高达 8087734 ...
- Python爬虫之豆瓣上征婚交友的美女们
我在刷豆瓣的时候发现,豆瓣上居然还有一个叫我被豆油表白了的交友话题,阅读量居然高达 8087734 次,拥有 1000+ 篇话题,几乎每篇平均被阅读了 8000+ ,看了一下里面的小姐姐照片还挺多的. ...
- 爬了下知乎上的高颜值小姐姐!美翻了!
作者:shenzhongqiang 来源:Python与数据分析 国庆阅兵方阵中的军乐队小姐姐火了,看到朋友圈好多小伙伴说自己恋爱了.除了军乐队的小姐姐,知乎上也有很多漂亮小姐姐的照片. ...
- 在游戏设备上砸钱 其实小姐姐们更疯狂!
7月25日消息,根据返利网发布的最新数据统计显示,2019年1-7月其平台游戏设备销售额相较去年同期增长12.89%,其中键盘增长了33.56%.鼠标增长了15.89%.耳机增长了23.17%.显示器 ...
- 抖音python广告_抖音上好看的小姐姐,Python给你都下载了
image 阅读文本大概需要 15 分钟. 目 标 场 景 相信大家平时刷抖音短视频的时候,看到颜值高的小姐姐,都有随手点赞关注的习惯. 如果一条条去刷确实很耗时间,如果 Python 能帮忙筛选出颜 ...
- 用 Python 人脸识别,选抖音上好看的小姐姐
点击"开发者技术前线",选择"星标"? 在看|星标|留言, 真爱 1 目 标 场 景 相信大家平时刷抖音短视频的时候,看到颜值高的小姐姐,都有随手点赞关注的习 ...
- 骚操作!用Python自动下载抖音美丽小姐姐(有对象的同学小心尝试!)
阅读文本大概需要 15 分钟. 1 目 标 场 景 相信大家平时刷抖音短视频的时候,看到颜值高的小姐姐,都有随手点赞关注的习惯. 如果一条条去刷确实很耗时间,如果 Python 能帮忙筛选出颜值高的小 ...
- 幕后常驻嘉宾配音小姐姐的2021年度总结
大家好,我是若川.这是公众号幕后常驻嘉宾配音小姐姐,看完了上一个阿源小姐姐的年度总结<一张图看程序媛阿源的2021个人年度流水账>,写的年度总结投稿.点击以下音频可以查看收听往期更多音频. ...
- 抖音那么大我想看美女,python一键爬取高颜值小姐姐
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 星安果.AirPython 目 标 场 景 相信大家平时刷抖音短视频 ...
最新文章
- CSDN湘苗培优|成长,从走出舒适区开始
- python删除重复值所在的行数_使用python读取txt文件的内容,并删除重复的行数方法...
- pat 1060. Are They Equal (25)
- Linux Anaconda断网创建虚拟环境
- 帧、场编码的个人理解
- 计算机二级证书如何考取,计算机二级证书怎么领 考试成绩怎么算
- 企业运维之域控篇(九)--辅助域强制占用后的操作--清除数据
- 计算机科学术语,计算机科学中的术语(2)
- HDU1407 测试你是否和LTC水平一样高 暴力、二分、hash
- 解决eclipse中java代码注释变成乱码的问题
- 鼠标经过图片抖动效果
- Java——递归练习
- 前端js文件合并三种方式
- Service Worker,Web Worker,WebSocket的对比
- 如何在Java中将字节数组转换为十六进制字符串?
- tdoa/aoa定位的扩展卡尔曼滤波定位算法matlab源码,03TDOA_AOA定位的扩展卡尔曼滤波算法MATLAB源代码...
- SHELLEXECUTEINFO
- Deepin - 环境配置及软件安装卸载记录(Debain镜像源)
- omron欧姆龙NJ/NX程序 全自动锂电池二封机,主站NJ501-1400+威纶通触摸屏。 整机采用EtherCAT总线网络节点控制,松下A6总线控制
- nes 红白机模拟器 第1篇