最近i茅台非常火,同时火起来的还有茅台价格…于是想了一个思路
写了部分内容,希望能够有所帮助
具体步骤:
打开公众号,下载图片,图片识别,确认自己想要的内容–发送钉钉.
下面为爬取公众号代码模块

# -*- coding: utf-8 -*-from selenium import webdriver
import time
import json
import requests
import re
import random#微信公众号账号
user="你的公众号账号"
#公众号密码
password="你的公众号密码"
#设置要爬取的公众号列表
gzlist=['茅台酒最新价格-公众号-北京名酒价格回收中心']#登录微信公众号,获取登录之后的cookies信息,并保存到本地文本中
def weChat_login():#定义一个空的字典,存放cookies内容post={}#用webdriver启动谷歌浏览器print("启动浏览器,打开微信公众号登录界面")driver = webdriver.Chrome(executable_path='C:\chromedriver.exe')#打开微信公众号登录页面driver.get('https://mp.weixin.qq.com/')#等待5秒钟time.sleep(5)print("正在输入微信公众号登录账号和密码......")#清空账号框中的内容driver.find_element_by_xpath("./*//input[@id='account']").clear()#自动填入登录用户名driver.find_element_by_xpath("./*//input[@id='account']").send_keys(user)#清空密码框中的内容driver.find_element_by_xpath("./*//input[@id='pwd']").clear()#自动填入登录密码driver.find_element_by_xpath("./*//input[@id='pwd']").send_keys(password)# 在自动输完密码之后需要手动点一下记住我print("请在登录界面点击:记住账号")time.sleep(10)#自动点击登录按钮进行登录driver.find_element_by_xpath("./*//a[@id='loginBt']").click()# 拿手机扫二维码!print("请拿手机扫码二维码登录公众号")time.sleep(20)print("登录成功")#重新载入公众号登录页,登录之后会显示公众号后台首页,从这个返回内容中获取cookies信息driver.get('https://mp.weixin.qq.com/')#获取cookiescookie_items = driver.get_cookies()#获取到的cookies是列表形式,将cookies转成json形式并存入本地名为cookie的文本中for cookie_item in cookie_items:post[cookie_item['name']] = cookie_item['value']cookie_str = json.dumps(post)with open('cookie.txt', 'w+', encoding='utf-8') as f:f.write(cookie_str)print("cookies信息已保存到本地")#爬取微信公众号文章,并存在本地文本中
def get_content(query):#query为要爬取的公众号名称#公众号主页url = 'https://mp.weixin.qq.com'#设置headersheader = {"HOST": "mp.weixin.qq.com","User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"}#读取上一步获取到的cookies with open('cookie.txt', 'r', encoding='utf-8') as f:cookie = f.read()cookies = json.loads(cookie)#登录之后的微信公众号首页url变化为:https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN&token=1849751598,从这里获取token信息response = requests.get(url=url, cookies=cookies)token = re.findall(r'token=(\d+)', str(response.url))[0]#搜索微信公众号的接口地址search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'#搜索微信公众号接口需要传入的参数,有三个变量:微信公众号token、随机数random、搜索的微信公众号名字query_id = {'action': 'search_biz','token' : token,'lang': 'zh_CN','f': 'json','ajax': '1','random': random.random(),'query': query,'begin': '0','count': '5'}  #打开搜索微信公众号接口地址,需要传入相关参数信息如:cookies、params、headerssearch_response = requests.get(search_url, cookies=cookies, headers=header, params=query_id)#取搜索结果中的第一个公众号lists = search_response.json().get('list')[0]#获取这个公众号的fakeid,后面爬取公众号文章需要此字段fakeid = lists.get('fakeid')#微信公众号文章接口地址appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'#搜索文章需要传入几个参数:登录的公众号token、要爬取文章的公众号fakeid、随机数randomquery_id_data = {'token': token,'lang': 'zh_CN','f': 'json','ajax': '1','random': random.random(),'action': 'list_ex','begin': '0',#不同页,此参数变化,变化规则为每页加5'count': '5','query': '','fakeid': fakeid,'type': '9'}#打开搜索的微信公众号文章列表页appmsg_response = requests.get(appmsg_url, cookies=cookies, headers=header, params=query_id_data)#获取文章总数max_num = appmsg_response.json().get('app_msg_cnt')#每页至少有5条,获取文章总的页数,爬取时需要分页爬num = int(int(max_num) / 5)#起始页begin参数,往后每页加5begin = 0while num + 1 > 0 :query_id_data = {'token': token,'lang': 'zh_CN','f': 'json','ajax': '1','random': random.random(),'action': 'list_ex','begin': '{}'.format(str(begin)),'count': '5','query': '','fakeid': fakeid,'type': '9'}print('正在翻页:--------------',begin)#获取每一页文章的标题和链接地址,并写入本地文本中query_fakeid_response = requests.get(appmsg_url, cookies=cookies, headers=header, params=query_id_data)fakeid_list = query_fakeid_response.json().get('app_msg_list')for item in fakeid_list:content_link=item.get('link')content_title=item.get('title')fileName=query+'.txt'with open(fileName,'a',encoding='utf-8') as fh:fh.write(content_title+":\n"+content_link+"\n")num -= 1begin = int(begin)begin+=5time.sleep(2)if __name__=='__main__':try:#登录微信公众号,获取登录之后的cookies信息,并保存到本地文本中weChat_login()#登录之后,通过微信公众号后台提供的微信公众号文章接口爬取文章for query in gzlist:#爬取微信公众号文章,并存在本地文本中print("开始爬取公众号:茅台酒最新价格-北京名酒价格回收中心-"+query)get_content(query)print("爬取完成")except Exception as e:print(str(e))

图片转文字部分代码:

def PicToText(dir):# dir参数为照片存放的文件夹# 读取评论信息下面所有文件夹的名称mer_folds = os.listdir(dir)comment_dp = []t0_all = time.time()for i in range(0, len(mer_folds)):fold = mer_folds[i]print('正在转换第 %d 个茅台酒最新价格-公众号-北京名酒价格回收中心-图片' % (i+1))t0 = time.time()# 定义一个空的字典 用来存放图片名称+转换后文字的内容image_tag = {}# 定位到某一商户对应的所有评论信息图片的文件夹里面if fold == '.DS_Store':continueelse:pics = os.listdir(dir + str(fold))for pic in pics:# 针对mac系统的隐藏文件if pic == '.DS_Store':continueelse:# 遍历某一商户下所有图片print('正在转换茅台酒最新价格-公众号-北京名酒价格回收中心- %s 评论图片: %s' % (fold, pic))try:image = get_file_content(dir + str(fold) + '/' + str(pic))tag = client.basicGeneral(image, options)# 先定义一个空的字符 用于后面的拼接comments = ''# 进行判断 如果只识别出一个来 就直接赋值if tag['words_result_num'] == 1:image_tag[pic] = tag['words_result'][0]['words']# 如果不止一个 进行循环 然后拼接评论else:for i in range(tag['words_result_num']):comments = comments + tag['words_result'][i]['words'] + ' 'image_tag[pic] = commentstime.sleep(1)except Exception as e:print('报错信息为: ', e)# 此时一个商家的图片全部转换okt1 = time.time()print('茅台酒最新价格-公众号-北京名酒价格回收中心- %s 所有图片转换完毕, 所需时间为 %.2f s' % (str(fold), (t1 - t0)))# 先把这部分数据给存起来 形成数据框a = []b = []for k,v in image_tag.items():a.append(k)b.append(v)y = pd.DataFrame({'茅台酒最新价格-公众号-北京名酒价格回收中心-':a,'茅台酒最新价格-公众号-北京名酒价格回收中心-百度识别评论结果':b})y['商户号'] = foldcomment_dp.append(y)# else:#     break# 输出所有的信息comment_dp_pd = pd.concat(comment_dp, axis=0)comment_dp_pd.to_csv('茅台酒最新价格-公众号-北京名酒价格回收中心-.csv', encoding = 'utf-8', index = False, quoting = 1)t1_all = time.time()print('茅台酒最新价格-公众号-北京名酒价格回收中心-图片转换完毕,所需时间为 %.2f s' % (t1_all - t0_all))return comment_dp_pd

发送钉钉代码模块:

import requests
from json import dumps
from datetime import datetimedef send_msg(content):"""钉钉消息提醒模块"""webhook = "设置自己的钉钉 webhook"# 钉钉安全规则将 天勤量化 设为关键字msg = {"msgtype": "text","text": {"content": "{}\n{}\n".format("茅台酒最新价格-北京名酒价格回收中心\n最新报价" + content,datetime.now().strftime("%Y-%m-%d %H:%M:%S"))}, }headers = {"content-type": "application/json;charset=utf-8"}body = dumps(msg)requests.post(webhook, data=body, headers=headers)print(content)

茅台酒如何转卖?价格如何才最合理?爬取公众号后每天自动发送价格到钉钉如何呢?相关推荐

  1. 公众号代运营的价格一般是多少钱

    公众号代运营 公众号代运营的价格一般是多少钱?对于公众号运营大家应该都不陌生,顾名思义就是公众号代运营的市场价格通常是多少钱?针对微信公众号运营想必大家并不陌生,简单的说就是通过对公众号内容运营管理等 ...

  2. 利用Ajax爬取今日头条头像,街拍图片。关于崔庆才python爬虫爬取今日头条街拍内容遇到的问题的解决办法。

    我也是初学爬虫,在看到崔庆才大佬的爬虫实战:爬取今日头条街拍美图时,发现有些内容过于陈旧运行程序时已经报错,网页的源代码早已不一样了.以下是我遇到的一些问题. 1.用开发者选项筛选Ajax文件时预览看 ...

  3. python爬取股票网站的历史周价格

    import requestsfrom bs4 import BeautifulSoup as bs import json import csv#宏变量存储目标js的URL列表 STOCKPAGEU ...

  4. Python爬取惠农网,看看农产品价格如何

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 ( 想要学习Python?Python学习交流群:1039649593,满足 ...

  5. 爬取steam上热门游戏的价格,网址,评价数据

    我学爬虫是始于装叉,但是装叉动力不够,老师大作业要我们学,无奈,这里试着用python爬取steam动态网页的数据,挺简单的 # -*- coding: utf-8 -*- # @Author:胡澳治 ...

  6. 使用python异步爬取淘宝大量商品的价格,并生成excel文件

    一个很简单的爬虫,但是由于request库不支持协程,如果要爬取多个页面的商品,会耗费大量的时间在同步网页请求上,简直就是龟速. 但是呢,官方专门提供了一个aiohttp库,用来实现异步网页请求等功能 ...

  7. 关注微信公众号后,才可以参加活动等等问题

    最近在做手机端微信的项目.准确来说我是前端开发人员,但是由于在学校时学的java,正好项目是java写的.开始时项目是有框架了的,现在项目需要加关注后,才可以领取奖励之类的,详情见如下网址: http ...

  8. pyhton爬虫 爬取电商平台商品历史价格、最低价格(慢慢买网)

    主要使用的库: requests:爬虫请求并获取源码 re:使用正则表达式提取数据 json:使用JSON提取数据 pandas:使用pandans存储数据 #!coding=utf-8 import ...

  9. python爬虫实战 爬取汽车之家上车型价格

    相关库 import pymysql import pymysql.cursors from bs4 import BeautifulSoup import requests import rando ...

最新文章

  1. php7 imagick安装,php扩展imagick安装for windows7
  2. 读文件并返回其中最大最小行的shell脚本
  3. 马尔可夫蒙特卡罗 MCMC 原理及经典实现
  4. -bash: mysql_upgrade: command not found
  5. 大数据系统架构模块解析
  6. linux f95编译器,Fortran 95编译器是否可以编译Fortran 77代码?
  7. C#.NET身份证验证算法
  8. 202206-2 寻宝!大冒险! CCF认证真题
  9. qmh(qtmediahub)插件研究
  10. 关于excel 打开时提示 文件正在使用 正处于锁定状态 正在编辑 的不治本但简单可行的解决办法
  11. Groovy学习(二):GDK初探
  12. 个人开发者用户福音,轻松申请微信商户、支付宝支付妙招
  13. 人工智能时代:人人会编程、程序员年龄越来越年轻化了
  14. android 9 8 对比,iPhone 8plus在安卓机中相当于什么层次?看看它与小米9的对比吧...
  15. K近邻模型、KNN算法1-构建预测模型
  16. C语言编写程序:判断某年份是否为闰年
  17. API采集接口源码电商采集工具接口
  18. EBS INV 计算现有量(标准API)、保留量、可用量 ---根据批次、库存组织、子库
  19. Python实现自动从中控考勤机软件中下载记录数据
  20. 边缘保留滤波(EPF)

热门文章

  1. win10计算机组共享的打印机,Win10系统局域网共享打印机设置 共享大地Win10打印机的方法...
  2. hive登录失败的问题解决
  3. linux proftpd mysql_使用MySQL认证ProFTPD用户
  4. Win7问题汇总及解答!
  5. 工作日志(部门管理)
  6. echarts散点图x轴和y轴在中间位置
  7. 图像处理篇二:图像颜色转换(OpenCV、PIL)
  8. Activity启动过程源码流程梳理和解读
  9. 有没有什么赚钱的副业?分享,适合学生赚钱的30个副业!
  10. DFS回溯-函数递归-xiaoz triangles