来篇python爬虫入门

来篇python爬虫入门

作者: 郭政鸿 2021/3/30

![](https://mmbiz.qpic.cn/mmbiz_jpg/N0HIVuxZOcZgCbDfJ6DD0Tmk6J3OpIscXuyavKPicjXeV4WeQ7FiaP8FhkYBh8M92weU389phIPX9AXRBZLuCjgA/640?wx_fmt=jpeg)

前言: 手头的工作弄完了, 突然就想写点python相关的文章, 于是就有了本文!

目标: 爬取微博实时热搜top50, 并发送到指定QQ邮箱

1、踩点抓包

目标站点: https://s.weibo.com/top/summary

抓包分析网络请求流程

image-20210330125003966

此站点为 服务端直出 页面, 那就好办了(此页面请求不需要鉴权, 鉴权的以后有空再说)

在写代码之前我们想捋一下流程

  1. 请求网页内容 (requets)

  2. 解析网页 (bs4)

  3. 提取内容并发送邮件 (smtplib)

2、爬取&解析内容

好了, 明确了上面这几步我们就可以开工了, 通过上面抓包我们已经拿到了请求的接口目标地址, https://s.weibo.com/top/summary

首先编写请求解析函数

def requestTop50():     # 接口地址     targetURL = 'https://s.weibo.com/top/summary'    # 使用requests库发送get请求     res = requests.get(targetURL)     # 将拿到的字符串结果通过bs4进行解析     html = BeautifulSoup(res.text, 'lxml')     # 使用css选择器语法获取到内容     items = html.select('.ranktop + td a')    # 存放结果的字典     result = {}     # 遍历请求并解析到的结果     for index in range(len(items)):       # 将解析好的结果存入字典中       result['top-' + str(index + 1)] = items[index].get_text()    # 写入文件, 可以不写     with open('./result.txt', 'w') as f:       f.write(str(result))    # 将数据返回     return result   

通过上面的代码可以爬取到微博热搜top50的数据内容, 写到这里这个简单的入门爬虫就结束了, 但是我感觉内容太少了, 就加了个邮件发送的功能.

将我们请求到的结果发送到指定的QQ邮箱

3、发送内容到指定QQ邮箱

再开始之前, 我们需要先到自己的QQ邮箱中开启SMTP服务, 并且获取QQ邮箱的授权码, 否则后续的步骤进行不下去了

获取授权码步骤: QQ邮箱设置 --> 账户 --> 然后如下图

image-20210330132005392

进行一个简单的认证后我们可以得到一个授权码, 下面的代码将会用到

万事具备, 可以编写发送邮件的功能了

def sendEmail(config, message):     try:       # 需要发送的邮件内容       msg = MIMEText(message["content"],'plain','utf-8')       # 邮件发送者信息       msg['From'] = formataddr([message["sender_name"], config['from_account']])       # 邮件接收者信息       msg['To'] = formataddr([message["receiver_name"], config['to_account']])       # 邮件主题       msg['Subject'] = message["subject"]     # SMTP服务器地址及端口, 这里使用腾讯QQ邮箱的SMTP地址, 不用改       server=smtp.SMTP_SSL("smtp.qq.com", 465)       # 配置发送者的邮箱账号和授权码(注意不是邮箱密码)       server.login(config['from_account'], config['secret'])       # 开始发送邮件       server.sendmail(config['from_account'], [config['to_account']], msg.as_string())       # 断开跟SMTP服务器的连接       server.quit()       print("发送成功")     except Exception:       print("发送失败")   

大功告成, 我们来把他组合一下! 就可以实现爬取微博热搜top50并且发送到某人QQ邮箱了

测试结果如下:

image-20210330140312483

完整代码

import requests   from bs4 import BeautifulSoup   import smtplib as smtp   from email.mime.text import MIMEText   from email.utils import formataddr      def requestTop50():     targetURL = 'https://s.weibo.com/top/summary'        res = requests.get(targetURL)     html = BeautifulSoup(res.text, 'lxml')     items = html.select('.ranktop + td a')        result = {}     for index in range(len(items)):       result['top-' + str(index + 1)] = items[index].get_text()        with open('./result.txt', 'w') as f:       f.write(str(result))        return result      def sendEmail(config, message):     try:       msg = MIMEText(message["content"],'plain','utf-8')       msg['From'] = formataddr([message["sender_name"], config['from_account']])       msg['To'] = formataddr([message["receiver_name"], config['to_account']])       msg['Subject'] = message["subject"]          server=smtp.SMTP_SSL("smtp.qq.com", 465)       server.login(config['from_account'], config['secret'])       server.sendmail(config['from_account'], [config['to_account']], msg.as_string())       server.quit()       print("发送成功")     except Exception:       print("发送失败")      if __name__ == '__main__':     config = {       # 发送者邮箱       "from_account": "xxxx@qq.com",       # 授权码       "secret": "xxxxxxxxxxxxxxx",       # 接收者邮箱       "to_account": "xx@qq.com"     }     result = requestTop50()     sendEmail(config, {       "sender_name": "帅鸿",       "receiver_name": "美女xx",       "subject": "<<在么?>>",       "content": "这里输入的是你想要和对方说的骚话!"     })   

4、总结

这只是一个简单的爬虫入门教程, 但是也阐述了爬虫的基本流程, 具体步骤无非就是获取数据, 解析数据, 进行数据分析及消费数据! 看到这里, 闷骚的朋友估计已经有想法了, 掌握了文中的知识后, 我们可以每天定时给女朋友们发送点爬取的骚言骚语, 或者做很多暖心的小tip等等❤️.

点击下方安全链接前往获取

CSDN大礼包:《Python入门&进阶学习资源包》免费分享

👉Python实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

👉Python书籍和视频合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

图片

👉Python副业创收路线👈

图片

这些资料都是非常不错的,朋友们如果有需要《Python学习路线&学习资料》,点击下方安全链接前往获取

CSDN大礼包:《Python入门&进阶学习资源包》免费分享

本文转自 网络,如有侵权,请联系删除。

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值