文 | 某某白米饭

来源: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

豆瓣上征婚交友的小姐姐们相关推荐

  1. 用Python搞定豆瓣上征婚交友的小姐姐们~

    文 | 某某白米饭 来源:Python 技术「ID: pythonall」 大家好,我是菜鸟哥! 派森酱在刷豆瓣的时候发现,豆瓣上居然还有一个叫我被豆油表白了的交友话题,阅读量居然高达 8087734 ...

  2. Python爬虫之豆瓣上征婚交友的美女们

    我在刷豆瓣的时候发现,豆瓣上居然还有一个叫我被豆油表白了的交友话题,阅读量居然高达 8087734 次,拥有 1000+ 篇话题,几乎每篇平均被阅读了 8000+ ,看了一下里面的小姐姐照片还挺多的. ...

  3. 爬了下知乎上的高颜值小姐姐!美翻了!

         作者:shenzhongqiang   来源:Python与数据分析 国庆阅兵方阵中的军乐队小姐姐火了,看到朋友圈好多小伙伴说自己恋爱了.除了军乐队的小姐姐,知乎上也有很多漂亮小姐姐的照片. ...

  4. 在游戏设备上砸钱 其实小姐姐们更疯狂!

    7月25日消息,根据返利网发布的最新数据统计显示,2019年1-7月其平台游戏设备销售额相较去年同期增长12.89%,其中键盘增长了33.56%.鼠标增长了15.89%.耳机增长了23.17%.显示器 ...

  5. 抖音python广告_抖音上好看的小姐姐,Python给你都下载了

    image 阅读文本大概需要 15 分钟. 目 标 场 景 相信大家平时刷抖音短视频的时候,看到颜值高的小姐姐,都有随手点赞关注的习惯. 如果一条条去刷确实很耗时间,如果 Python 能帮忙筛选出颜 ...

  6. 用 Python 人脸识别,选抖音上好看的小姐姐

    点击"开发者技术前线",选择"星标"? 在看|星标|留言,  真爱 1 目 标 场 景 相信大家平时刷抖音短视频的时候,看到颜值高的小姐姐,都有随手点赞关注的习 ...

  7. 骚操作!用Python自动下载抖音美丽小姐姐(有对象的同学小心尝试!)

    阅读文本大概需要 15 分钟. 1 目 标 场 景 相信大家平时刷抖音短视频的时候,看到颜值高的小姐姐,都有随手点赞关注的习惯. 如果一条条去刷确实很耗时间,如果 Python 能帮忙筛选出颜值高的小 ...

  8. 幕后常驻嘉宾配音小姐姐的2021年度总结

    大家好,我是若川.这是公众号幕后常驻嘉宾配音小姐姐,看完了上一个阿源小姐姐的年度总结<一张图看程序媛阿源的2021个人年度流水账>,写的年度总结投稿.点击以下音频可以查看收听往期更多音频. ...

  9. 抖音那么大我想看美女,python一键爬取高颜值小姐姐

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 星安果.AirPython 目 标 场 景 相信大家平时刷抖音短视频 ...

最新文章

  1. CSDN湘苗培优|成长,从走出舒适区开始
  2. python删除重复值所在的行数_使用python读取txt文件的内容,并删除重复的行数方法...
  3. pat 1060. Are They Equal (25)
  4. Linux Anaconda断网创建虚拟环境
  5. 帧、场编码的个人理解
  6. 计算机二级证书如何考取,计算机二级证书怎么领 考试成绩怎么算
  7. 企业运维之域控篇(九)--辅助域强制占用后的操作--清除数据
  8. 计算机科学术语,计算机科学中的术语(2)
  9. HDU1407 测试你是否和LTC水平一样高 暴力、二分、hash
  10. 解决eclipse中java代码注释变成乱码的问题
  11. 鼠标经过图片抖动效果
  12. Java——递归练习
  13. 前端js文件合并三种方式
  14. Service Worker,Web Worker,WebSocket的对比
  15. 如何在Java中将字节数组转换为十六进制字符串?
  16. tdoa/aoa定位的扩展卡尔曼滤波定位算法matlab源码,03TDOA_AOA定位的扩展卡尔曼滤波算法MATLAB源代码...
  17. SHELLEXECUTEINFO
  18. Deepin - 环境配置及软件安装卸载记录(Debain镜像源)
  19. omron欧姆龙NJ/NX程序 全自动锂电池二封机,主站NJ501-1400+威纶通触摸屏。 整机采用EtherCAT总线网络节点控制,松下A6总线控制
  20. nes 红白机模拟器 第1篇

热门文章

  1. 【瑞萨RA4系列】使用TinyMaix识别手写数字
  2. Zoom会议多开 or 同时加入多个Zoom Meeting
  3. 深度学习训练营之灵笼人物识别
  4. html多张图片合在一块,多张照片怎么拼在一起?10张以上多图拼图方法 超简单! (全文)...
  5. matlab画左右半圆
  6. 怎么制作九宫格切图?这两个方法非常简单
  7. 淘客渠道商备案及流程说明
  8. 曲线数学NURBS之B样条曲线
  9. Android 修改zxing二维码样式
  10. gridsome(三)——plugins