python爬虫进阶篇:利用Scrapy爬取同花顺个股行情并发送邮件通知

本文主要是介绍python爬虫进阶篇:利用Scrapy爬取同花顺个股行情并发送邮件通知,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

上篇笔记我记录了scrapy的环境搭建和项目创建和第一次demo测试。本篇我们来结合现实场景利用scrapy给我们带来便利。
有炒股或者其它理财产品的朋友经常会关心每日的个股走势,如果结合爬虫进行实时通知自己,并根据自己预想的行情进行邮件通知(比如某个股票如果到达100块钱就发邮件通知自己),这样会大大提高我们的炒股收益。

二、需求分析

  • 目标网站:同花顺A股市场行情
  • 目标数据:
    • 股票代码
    • 股票名称
    • 股票价格
    • 股票涨跌
      在这里插入图片描述

三、代码实现

  • 设置爬取的目标网页
    def start_requests(self):urls = ["http://q.10jqka.com.cn/"]for url in urls:yield scrapy.Request(url=url, callback=self.parse)
  • 解析目标信息的网页结构
    def parse(self, response):# 股票代码列表stock_id_list = response.css("div#maincont table.m-table.m-pager-table td:nth-child(2) a::text").extract()# 股票名称列表stock_name_list = response.css("div#maincont table.m-table.m-pager-table td:nth-child(3) a::text").extract()# 股票价格列表price_list = response.css("div#maincont table.m-table.m-pager-table td:nth-child(4)::text").extract()# 股票涨跌列表speed_up_list = response.css("div#maincont table.m-table.m-pager-table td:nth-child(6)::text").extract()for i in range(len(stock_id_list)):stock_id = stock_id_list[i]stock_name = stock_name_list[i]price = price_list[i]speed_up = speed_up_list[i]# 存到item,用来持久化item = ScrapyDemoItem()item["stock_id"] = stock_iditem["stock_name"] = stock_nameitem["price"] = priceitem["speed_up"] = speed_upyield item
  • 处理爬取的目标信息
    • 将目标信息存储为html形式
   def __init__(self):self.html = '<html><head><meta charset="utf-8"></head><body><table>'def process_item(self, item, spider):self.html = self.html + '<tr>'self.html = self.html + '<td>%s</td>' % item["stock_id"]self.html = self.html + '<td>%s</td>' % item["stock_name"]self.html = self.html + '<td>%s</td>' % item["price"]self.html = self.html + '<td>%s</td>' % item["speed_up"]self.html = self.html + '</tr>'return itemdef close_spider(self, spider):self.html = self.html + '</table></body></html>'self.send_email(self.html)print()
  • 发送邮件
    结合之前写的python发邮件的知识点《Python:发送qq邮箱只需几行代码轻松搞定》,将html内容发送到邮箱中
    def send_email(self, html):# 设置邮箱账号account = "xxx@qq.com"# 设置邮箱授权码token = "xxx"# 实例化smtp对象,设置邮箱服务器,端口smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)# 登录qq邮箱smtp.login(account, token)# 添加正文,创建简单邮件对象email_content = MIMEText(html, 'html', 'utf-8')# 设置发送者信息email_content['From'] = 'xxx@qq.com'# 设置接受者信息email_content['To'] = '技术总是日积月累的'# 设置邮件标题email_content['Subject'] = '来自code_space的一封信'# 发送邮件smtp.sendmail(account, 'xxx@qq.com', email_content.as_string())# 关闭邮箱服务smtp.quit()

在这里插入图片描述

四、拓展

Scrapy是个很好用的框架,结合日常生活中的需求,我们可以写很多给我们带来便利的工具,以后会补上各种我多年来使用过的工具代码,都是基于Scrapy的使用。

这篇关于python爬虫进阶篇:利用Scrapy爬取同花顺个股行情并发送邮件通知的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/513578

相关文章

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型: