本文主要是介绍学习记录:python简易爬取菜谱,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
爬取下厨房菜谱:http://www.xiach删除我ufang.com/explore/
爬取内容有:菜的标题 材料成分 以及点击标题跳转该菜的菜谱制作页面链接
shift + ctrl + i 调出检查器 查看网页构成
标题都位于div class=“info pure-u”这里我可以爬取到标题了
a标签的 href获取的链接不完整,我们需要做数据拼接
下面为代码
#导入requests 和 BeautifulSoup库
import requests
from bs4 import BeautifulSoup
#获取网页链接
url = 'http://www.xiachufang.com/explore/'
#获取网页源码requests.get
res = requests.get(url)
#用res.encoding转换编码
res.encoding = 'utf-8'
#BeautifulSoup分析res.text文本 #html.parser解析
bs = BeautifulSoup( res.text,'html.parser')
#获取标题下面的内容
items = bs.find_all('div',class_='info pure-u')
#创建一个空的列表
list_all = []
#建立循环爬取菜的标题 材料成分 以及点击标题跳转该菜的菜谱制作页面链接
for food in items:#创建一个变量利用find查找a标签的内容并保存tag_a = food.find('a')#获取到菜的标题文字内容.text , 保留文字[17:-13]去除多余的内容name = tag_a.text[17:-13]#对获取的链接作数据拼接URL = 'http://www.xiachufang.com'+tag_a['href']#获取p标签的材料成分tag_p = food.find('p',class_='ing ellipsis')#同上去除多余的内容ingredients = tag_p.text[1:-1]#把获取的菜的标题 材料成分 链接 添加到,list_all这个刚刚创建的空的列表list_all.append([name,URL,ingredients])#输出列表里面的内容
for i in list_all:print(i,'\n')
发现上面的代码少了个头好像运行不了
修改过的
time:2020/8/15
import requests
from bs4 import BeautifulSoupurl='http://www.xiachufang.com/explore/'headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}res = requests.get(url,headers=headers)bs = BeautifulSoup( res.text,'lxml') items = bs.find_all('div',class_='info pure-u')list_all = []for food in items:#创建一个变量利用find查找a标签的内容并保存tag_a = food.find('a')#获取到菜的标题文字内容.text , 保留文字[17:-13]去除多余的内容name = tag_a.text[17:-13]#对获取的链接作数据拼接URL = 'http://www.xiachufang.com'+tag_a['href']#获取p标签的材料成分tag_p = food.find('p',class_='ing ellipsis')#同上去除多余的内容ingredients = tag_p.text[1:-1]#把获取的菜的标题 材料成分 链接 添加到,list_all这个刚刚创建的空的列表list_all.append([name,URL,ingredients])for i in list_all:print(i,"\n")
这篇关于学习记录:python简易爬取菜谱的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!