我!!虽然还是一只小菜鸡,可是不知不觉间也用python做了很多事,像爬天气预告,定期给女朋友微信号推送鸡汤之类的,但是!我认为最好用的还是用来爬下厨房!
作为一朵独自在广州挣扎的祖国希望,自然会在某个村落租赁属于自己的小黑屋,为了弥补内心的空虚自然无可避免地选择通过做饭来提升生活的仪式感,那么大家或许都会遇到和我同样的情况,会的菜式都做了一遍了吃腻了又不想下馆子咋整?
如果下厨房的菜系会自己跑过来就好了,于是...
分享开始之前,咳....做菜零基础的同学可以先下课了。
那么,开始哈:我理解的爬虫就是根据想法具象化,然后转化为大白话,分解开逐步走代码;
大白话就是爬取好吃的,让菜系自己来找我;
分解开就3个步骤:爬好吃的
发送到自己手上
定时自动
第一步,明确爬取目标,我们需要将最受欢迎的栏目内容爬取下来(开发者工具左上角的小箭头快速定位)
import requests
# 引用requests库
from bs4 import BeautifulSoup
# 引用BeautifulSoup库
res_foods = requests.get('/explore/')
# 获取数据
bs_foods = BeautifulSoup(res_foods.text,'html.parser')
# 解析数据
tag_name = bs_foods.find_all('p',class_='name')
# 查找包含菜名和URL的
标签
tag_ingredients = bs_foods.find_all('p',class_='ing ellipsis')
# 查找包含食材的
标签
list_all = []
# 创建一个空列表,用于存储信息
for x in range(len(tag_name)):
# 启动一个循环,次数等于菜名的数量
list_food = [tag_name[x].text[18:-14],tag_name[x].find('a')['href'],tag_ingredients[x].text[1:-1]]
# 提取信息,封装为列表。注意此处[18:-14]切片和之前不同,是因为此处使用的是
标签,而之前是
list_all.append(list_food)
# 将信息添加进list_all
print(list_all[0:3])
# 打印,看各自需求,我每周一般就做4天饭
第二步,接受方式我选择发送到微信(可选邮箱等,根据喜好)
from wxpy import *
# 导入模块
bot = Bot(console_qr=True, cache_path=True)
#扫码登陆
my_friend = bot.friends().search('微信名字')[0]
def send(message):
#定义函数
bot.file_helper.send(message)
#发送给自己
send('发送的内容')
第三步,设置指定时间发送
import schedule
#引用库
# schedule.every(10).minutes.do(job) #部署每10分钟执行一次job()函数的任务
# schedule.every().hour.do(job) #部署每×小时执行一次job()函数的任务
# schedule.every().day.at("10:30").do(job) #部署在每天的10:30执行job()函数的任务
# schedule.every().monday.do(job) #部署每个星期一执行job()函数的任务
# schedule.every().wednesday.at("13:15").do(job)#部署每周三的13:15执行函数的任务
while True:
schedule.run_pending() # 活下去...
Goooooooood!!!至此完成了基本步骤的分解,下面将3个步骤汇总即可完成构思:
import requests
# 引用requests库
from bs4 import BeautifulSoup
# 引用BeautifulSoup库
from wxpy import *
# 导入wxpy用于登陆微信
import schedule
#引用schedule用于定时
res_foods = requests.get('/explore/')
# 获取数据
bs_foods = BeautifulSoup(res_foods.text,'html.parser')
# 解析数据
tag_name = bs_foods.find_all('p',class_='name')
# 查找包含菜名和URL的
标签
tag_ingredients = bs_foods.find_all('p',class_='ing ellipsis')
# 查找包含食材的
标签
list_all = []
# 创建一个空列表,用于存储信息
for x in range(len(tag_name)):
# 启动一个循环,次数等于菜名的数量
list_food = [tag_name[x].text[18:-14],tag_name[x].find('a')['href'],tag_ingredients[x].text[1:-1]]
# 提取信息,封装为列表。注意此处[18:-14]切片和之前不同,是因为此处使用的是
标签,而之前是
list_all.append(list_food)
# 将信息添加进list_all
list_all = list_all[0:4]
# 打印,0:3看各自需求,随自己喜好索引
bot = Bot(console_qr=True, cache_path=True)
#扫码登陆
my_friend = bot.friends().search('Nick Wilde')[0]
def send(message):
#定义函数
bot.file_helper.send(message)
#发送给自己
#send(list_all)
def job():
send(list_all)
print('消息发送成功')
schedule.every().day.at("17:56").do(job)#部署每天的17:52执行函数的任务
while True:
schedule.run_pending()
完成,如果万幸有大佬看到内容,那么很清楚就是一小菜鸡写的,但还是厚着脸藉此衷心希望各位照顾好自己的身体,毕竟以后身体就不再是你自己的了哈哈哈哈哈!!
好,装完了,赶紧溜!!!