大家好,我是辣条,这是班花系列终章前的最后一篇,下一篇会完结这个系列。
前言
上次经过给班花邮箱脚本乌龙事件之后,我也心里过意不去,几次帮忙都没搞成,也快毕业了,不想给室友心中留有遗憾,是男人总得自己大大方方的表白一次才行嘛,于是我想到了最原始的表白,写情书!想想以前初中、高中不都流行这种方式嘛。我就爬取了情书网,给室友弄一份手写万字情书,我原以为事情要么成功,要么失败。也算了却心事,只是让我没想到事情却复杂起来了,原来这才是班花的终极秘密...我们三个人又该走向何方...
本博客实现的目标
采集情书网 爱情故事 标题与文章内容
爬取目标
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、爬虫、数据分析、算法等学习视频和文档,添加获取
交流加群:大佬指点迷津,你的问题往往有人遇到过,技术互助交流。
领取