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

大家好,我是辣条,这是班花系列终章前的最后一篇,下一篇会完结这个系列。
前言 班花系列|我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
文章图片


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


本博客实现的目标

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

爬取目标
http://www.qingshu.so/aiqing/aqgs.html

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


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

重点学习的内容
1. requests请求 2. 请求头反爬设置 3. 文件二级存储

页面分析
使用快捷键 F12 打开浏览器控制台 在源代码页面有包含 该网站为静态页面数据格式
班花系列|我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
文章图片

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


下面上代码:
1. 安装对应第三方库 (requestspyquery) 2. pip install requests

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

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

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


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)

详情页地址提取
班花系列|我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
文章图片


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

详情页
班花系列|我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
文章图片


详情页代码:
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 = https://www.it610.com/article/i.attr('href') # 提取a标签当中的属性 urls = 'http://www.qingshu.so' + href # 拼接url地址 Details(urls)

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


结尾 在我第二天满怀期待等待室友消息的时候,却收到了班花的一条消息,顿时懵了...彻底懵了...
班花系列|我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
文章图片

我整理整理思绪,也就是说,我以为的班花的秘密前面那些都是我以为的???原来班花的终极秘密就是曾经对我这个钢铁直男有好感!!!啊这...电视剧也不敢拍这么狗血的剧情啊...
我凌乱了..然后缓缓想想怎么处理这个吧...
班花系列|我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
文章图片


前面回顾: 我用Python修改了班花的开机密码,重新登录后竟然发现了她的秘密!??????
我用Python采集了班花的空间数据集,除了美照竟然再一次发现了她另外的秘密!
室友单恋班花失败,我爬了一个网站发给他瞬间治愈,男人的快乐就这么简单【每天一遍,忘记初恋】
我用Python写了一个邮箱脚本发给班花,没想到事情闹大了...
回答一下大家主要的问题: 这个系列里面的班花、室友是真的吗还是纯故事呢?
班花系列|我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
文章图片

答:这个问题其实很早之前我就回答过大家,包括在我的万粉总结、半年总结也说到,我的创作心路历程都详细说了,这里不做过多解释了,其实真假的问题我说了你们也不会相信,我凭几张截图就能证明我文章里的事情是真实的吗,但是我可以告诉你们的是,我写班花系列的第一篇,就是我找到自己风格定位的第一篇,我把生活中的事结合技术博文写到一起,大大激发了我的创作灵感,生活中的事情被我夸大化了放进博文中,所以你相信就是真的,就当学习里面涉及的技术了,不相信就当假的学习技术的同时看了故事。
文章中公开别人的隐私问题真的好吗?
班花系列|我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
文章图片

答:首先声明,涉及到班花、室友包括我自己所有出现的信息我都打码了的,不管是照片还是其他所有的,至于在文章中写到别人确实需要征得别人的同意才行,我在前两篇中确实没注意到这个问题,但是在这篇中我是征得同意了的,但是因为涉及到文章内容的问题,我就不先公开,在最后一篇中公开了,这个问题大家可以放心?
在一个技术博客网站发“故事文”合适吗?这种文章在技术博客网站有价值吗?
答:故事文判断的标准是什么?我的班花系列文章里没有讲技术吗,相反我的这些文章里技术才是核心,故事只不过是为技术服务的,只不过你的眼光总是盯着这点故事,不在乎我大篇的代码和解析。其二有没有价值判断的标准是什么,你写个多么深度多么牛逼的技术文章结果0个人看,你都没找到自己文章输出的价值点,以及你的受众群体需求点,以及自媒体运营的核心内容,你跟我聊价值,说白了博客的好坏判断标准在用户手里,用户喜欢就能为网站带来流量,能为你快速吸粉,你的文章写出来有人看,有人评论收藏才说明你的文章有价值,当然如果你是一个用爱心发电,写博客纯粹自己学习,服务自己的人,当我没说,你不看就行了,我是写给我的粉丝和我的受众群体看的。
让我真正写下去的,正是粉丝们的认可,他们的评论、点赞、收藏让我感觉到我输出的内容是有价值的,是被大众接受的,更是能和他们产生共情的。
班花系列|我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
文章图片

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


行业资料:添加即可领取PPT模板、简历模板、行业经典书籍PDF。
面试题库:历年经典,热乎的大厂面试真题,持续更新中,添加获取。
学习资料:含Python、爬虫、数据分析、算法等学习视频和文档,添加获取
交流加群:大佬指点迷津,你的问题往往有人遇到过,技术互助交流。
领取
班花系列|我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
文章图片

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

    推荐阅读