我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!

五包辣条! 2021-10-28 19:10:40
Python 表白 助力 室友 情书

大家好,我是辣条,这是班花系列终章前的最后一篇,下一篇会完结这个系列。 

 前言

 

上次经过给班花邮箱脚本乌龙事件之后,我也心里过意不去,几次帮忙都没搞成,也快毕业了,不想给室友心中留有遗憾,是男人总得自己大大方方的表白一次才行嘛,于是我想到了最原始的表白,写情书!想想以前初中、高中不都流行这种方式嘛。我就爬取了情书网,给室友弄一份手写万字情书,我原以为事情要么成功,要么失败。也算了却心事,只是让我没想到事情却复杂起来了,原来这才是班花的终极秘密...我们三个人又该走向何方...

 

本博客实现的目标

采集情书网 爱情故事 标题与文章内容

爬取目标

http://www.qingshu.so/aiqing/aqgs.html

 

工具使用

开发工具:pycharm
开发环境:python3.7, Windows10
使用工具包:requests,pyquery

重点学习的内容

1. requests请求
2. 请求头反爬设置
3. 文件二级存储

页面分析

使用快捷键 F12 打开浏览器控制台 在源代码页面有包含 该网站为静态页面数据格式

 

下面上代码:

1. 安装对应第三方库 (requests pyquery)
2. pip install requests

 

 

 

import requests
from pyquery import PyQuery as pq
​
​
url = 'http://www.qingshu.so/aiqing/aqgs.html'
headers = {
   # 请求服务器 获取需要的数据类型
   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
   'Referer': 'http://www.qingshu.so/bbqs.html', # 防盗链接 主要是验证你是从哪里来的
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36' # 浏览器类型
}
# 发送请求   content.decode('utf-8') 返回数据解码
response = requests.get(url, headers=headers).content.decode('utf-8')
print(response)

详情页地址提取

 

doc = pq(response) # 创建pyquery对象
details = doc('.t a').items() # 通过前端css 的 类选择器提取对应数据 (a是标签 在 class='t'的下级)   (类选择器对应 .   id选择器对应#)
for i in details:
   href = i.attr('href') # 提取a标签当中的属性
   urls = 'http://www.qingshu.so' + href # 拼接url地址
   print(urls)

详情页

 

详情页代码:

response = requests.get(urls).content.decode('utf-8')
doc = pq(response)
title = doc('.a_title').text() # 标题
content = doc('.a_content.clearfix').text() # 文章内容
print(title)
print(content)

文章存储

def Save(title, content):
   '''
  文章存储
  :param title: 文章标题
  :param content: 文章内容
  :return:
  '''
   path = './情书网文章/'
   if not os.path.exists(path): # 判断文件夹不存在 就新建一个文件夹
       os.makedirs(path)
   with open(path + '{}.txt'.format(title), 'a') as f:
       f.write(content)
   print('{}已经下载完成....'.format(title))

全部代码

代码太乱了 做了一个简单的函数封装 实现代码解耦

import requests
from pyquery import PyQuery as pq
import os
​
​
def Tools(url):
   '''
  请求工具函数
  :param url: 请求地址
  :return: 响应
  '''
   headers = {
       # 请求服务器 获取需要的数据类型
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
       # 'Referer': 'http://www.qingshu.so/bbqs.html', # 防盗链接 主要是验证你是从哪里来的
       'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36'
       # 浏览器类型
  }
   # 发送请求   content.decode('utf-8') 返回数据解码
   response = requests.get(url, headers=headers).content.decode('utf-8')
   return response
​
​
def Save(title, content):
   '''
  文章存储
  :param title: 文章标题
  :param content: 文章内容
  :return:
  '''
   path = './情书网文章/'
   if not os.path.exists(path): # 判断文件夹不存在 就新建一个文件夹
       os.makedirs(path)
   with open(path + '{}.txt'.format(title), 'a') as f:
       f.write(content)
   print('{}已经下载完成....'.format(title))
​
​
def Details(urls):
   '''
  请求详情页地址 获取 标题也 文章内容
  :param urls: 详情页地址
  :return:
  '''
   response = Tools(urls)
   doc = pq(response)
   title = doc('.a_title').text() # 标题
   content = doc('.a_content.clearfix').text() # 文章内容
   Save(title, content)
​
​
url = 'http://www.qingshu.so/aiqing/aqgs.html'
response = Tools(url)
doc = pq(response) # 创建pyquery对象
details = doc('.t a').items() # 通过前端css 的 类选择器提取对应数据 (a是标签 在 class='t'的下级)   (类选择器对应 .   id选择器对应#)
for i in details:
   href = i.attr('href') # 提取a标签当中的属性
   urls = 'http://www.qingshu.so' + href # 拼接url地址
   Details(urls)

 

 结尾

在我第二天满怀期待等待室友消息的时候,却收到了班花的一条消息,顿时懵了...彻底懵了...

 我整理整理思绪,也就是说,我以为的班花的秘密前面那些都是我以为的???原来班花的终极秘密就是曾经对我这个钢铁直男有好感!!!啊这...电视剧也不敢拍这么狗血的剧情啊...

我凌乱了..然后缓缓想想怎么处理这个吧...

 

前面回顾:

我用Python修改了班花的开机密码,重新登录后竟然发现了她的秘密!​​​​​​ 

我用Python采集了班花的空间数据集,除了美照竟然再一次发现了她另外的秘密!

室友单恋班花失败,我爬了一个网站发给他瞬间治愈,男人的快乐就这么简单【每天一遍,忘记初恋】

我用Python写了一个邮箱脚本发给班花,没想到事情闹大了...

回答一下大家主要的问题:

这个系列里面的班花、室友是真的吗还是纯故事呢?

 答:这个问题其实很早之前我就回答过大家,包括在我的万粉总结、半年总结也说到,我的创作心路历程都详细说了,这里不做过多解释了,其实真假的问题我说了你们也不会相信,我凭几张截图就能证明我文章里的事情是真实的吗,但是我可以告诉你们的是,我写班花系列的第一篇,就是我找到自己风格定位的第一篇,我把生活中的事结合技术博文写到一起,大大激发了我的创作灵感,生活中的事情被我夸大化了放进博文中,所以你相信就是真的,就当学习里面涉及的技术了,不相信就当假的学习技术的同时看了故事。

文章中公开别人的隐私问题真的好吗?

 答:首先声明,涉及到班花、室友包括我自己所有出现的信息我都打码了的,不管是照片还是其他所有的,至于在文章中写到别人确实需要征得别人的同意才行,我在前两篇中确实没注意到这个问题,但是在这篇中我是征得同意了的,但是因为涉及到文章内容的问题,我就不先公开,在最后一篇中公开了,这个问题大家可以放心?

在一个技术博客网站发“故事文”合适吗?这种文章在技术博客网站有价值吗?

答:故事文判断的标准是什么?我的班花系列文章里没有讲技术吗,相反我的这些文章里技术才是核心,故事只不过是为技术服务的,只不过你的眼光总是盯着这点故事,不在乎我大篇的代码和解析。其二有没有价值判断的标准是什么,你写个多么深度多么牛逼的技术文章结果0个人看,你都没找到自己文章输出的价值点,以及你的受众群体需求点,以及自媒体运营的核心内容,你跟我聊价值,说白了博客的好坏判断标准在用户手里,用户喜欢就能为网站带来流量,能为你快速吸粉,你的文章写出来有人看,有人评论收藏才说明你的文章有价值,当然如果你是一个用爱心发电,写博客纯粹自己学习,服务自己的人,当我没说,你不看就行了,我是写给我的粉丝和我的受众群体看的。

让我真正写下去的,正是粉丝们的认可,他们的评论、点赞、收藏让我感觉到我输出的内容是有价值的,是被大众接受的,更是能和他们产生共情的。

 
行业资料:添加即可领取PPT模板、简历模板、行业经典书籍PDF。
面试题库:历年经典,热乎的大厂面试真题,持续更新中,添加获取。
学习资料:含Python、爬虫、数据分析、算法等学习视频和文档,添加获取
交流加群:大佬指点迷津,你的问题往往有人遇到过,技术互助交流。

领取 

版权声明
本文为[五包辣条!]所创,转载请带上原文链接,感谢
https://blog.csdn.net/ai19970205/article/details/120464774

  1. Python - 字符串作为文件
  2. Python - 重新格式化段落
  3. 4.Python-常用语句
  4. 【Python】基于FastAPI的Restful规范实践
  5. 【Python】FastAPI脚手架:规范FastAPI后端接口项目开发
  6. 【Python】单元测试实践内部指南
  7. Django开发中使用Cache缓存提升10倍效率
  8. python如何重复执行程序命令而不是一次退出
  9. python 编写程序题使用for循环
  10. 一道简单的python作业题,就是不能运行
  11. 使用python回答,望有人来帮
  12. 用python插入日期格式到mysql数据库中,一直运行不了。
  13. 关于以下Python问题如何解决
  14. Use Python to help the financial sister solve the PDF splitting. The sister said it was great...
  15. Comment résoudre les problèmes Python suivants
  16. 如何使用python建立列表?新手入门
  17. python 3d画图库matplotlib,第一次用
  18. python 3d畫圖庫matplotlib,第一次用
  19. Python 3D painting Library matplotlib, utilisé pour la première fois
  20. Comment créer une liste en utilisant python? Débutant
  21. python定义列表 新手入门级别
  22. Liste de définition Python débutant
  23. 如何用Python实现,急!!xdm
  24. 如何用Python實現,急!!xdm
  25. Comment implémenter en python, urgent!! Xdm
  26. 新猿木子李:0基础学python培训教程 Python操作Redis之hash类型
  27. python导入模块变量后,打印的值固定不变了,大老们怎么破。
  28. Why is my rust slower than Python!
  29. 用Python给喜欢的女孩写一个办公小工具,她说棒极了!
  30. python中\t是空一个tab,那这个1.2后面怎么没空格?
  31. Il y a un onglet vide en python, alors pourquoi n'y a - t - il pas d'espace après ce 1.2?
  32. 关于python中pygame.display.set_mode()的一点小问题
  33. 猜我能否用Python编程抢到茅台?已经全部开源到GitHub了
  34. python数据分析numpy 补充短试题
  35. 2W + word long article, an article on literacy python, numpy and pandas, recommended collection!
  36. Python培训-自动化运维常用库
  37. On the magical usage and principle of weak reference in Python
  38. Formation python - bibliothèques d'exploitation et de maintenance automatisées
  39. Python培训-HTTP与HTTPS之间的区别
  40. Python有哪些高级特性?
  41. Python代码阅读(第25篇):将多行字符串拆分成列表
  42. Quelles sont les fonctionnalités avancées de python?
  43. 运用python程序编写下面的的代码
  44. Python代码阅读(第25篇):将多行字符串拆分成列表
  45. 初学者 可以帮我看一下为什么Python程序运行不了吗
  46. 初學者 可以幫我看一下為什麼Python程序運行不了嗎
  47. Python代碼閱讀(第25篇):將多行字符串拆分成列錶
  48. Les débutants peuvent - ils m'aider à voir pourquoi le programme Python ne fonctionne pas?
  49. Lecture du Code Python (article 25): diviser les chaînes multilignes en listes
  50. Écrivez le code suivant en utilisant le programme Python
  51. Python exercises
  52. Python exercises
  53. Python exercises
  54. 随机试验数据函数统计分析python
  55. Python after class exercises (junior / October 11, 2021)
  56. python使用cv2.imread()读取图片失败
  57. python使用cv2.imread()讀取圖片失敗
  58. Python n'a pas lu l'image en utilisant cv2.imread ()
  59. Error debugging is accurate to lines, match case pattern matching... The official version of Python 3.10 is really friendly
  60. 100 basic Python interview questions Part II (41-60)