自动采集推送(爬取金十数据网站并自动推送到微信查看风险经济事件)
优采云 发布时间: 2021-11-23 20:13自动采集推送(爬取金十数据网站并自动推送到微信查看风险经济事件)
一、背景
由于业务需要获取有风险的经济事件并采取应对措施,但由于种种原因,他们忽略了每天查看经济日历,因此通过抓取黄金十数据网站并自动推送到微信查看。
二、目标达成
图片
三、环境和工具
1、pycharm:Python 开发 IDE
2、windows 窗口句柄获取工具
四、实现思路
爬虫获取风险事件,然后python通过句柄定位微信窗口,模拟本地微信客户端的键盘鼠标操作发送给好友(自己)。最初使用的是微信itchat库,但这是基于微信网页版的。多次登录后微信提醒:为了您的账号安全,该微信账号不再允许登录网页版微信。您可以使用 Windows 微信或 Mac。
五、主代码
<p>
# -*- coding: utf-8 -*-
import scrapy
from selenium import webdriver
from scrapy import signals
import win32con,win32gui,time,win32api
import win32clipboard as w
import re
from datetime import datetime
hwnd = 394916 #微信窗口句柄,使用句柄工具获取
class JinshiSpider(scrapy.Spider):
name = 'jinshirili'
allowed_domains = ['jinshi.com']
start_urls = ['https://rili.jin10.com/']
@classmethod
def from_crawler(cls, crawler, *args, **kwargs):
spider = super(JinshiSpider, cls).from_crawler(crawler, *args, **kwargs)
options = webdriver.ChromeOptions()
options.add_argument('--headless')
spider.chrome = webdriver.Chrome(chrome_options=options)
crawler.signals.connect(spider.spider_closed, signal=signals.spider_closed)
return spider
def spider_closed(self, spider):
spider.chrome.quit()
print('一次爬取结束-----等待下次循环爬取')
def parse(self, response):
#获取风险事件列表
contents = response.xpath('//div[@class="jin-rili_content J_rili_content"]//tr')
# print(len(contents))
for i,content in enumerate(contents):
searchObj = re.search(r'