概述
# 引用requests库
import requests
# 引用BeautifulSoup库
from bs4 import BeautifulSoup
# 添加请求头
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
# 获取数据
res_foods = requests.get('http://www.xiachufang.com/explore/',headers=headers)
# 解析数据
bs_foods = BeautifulSoup(res_foods.text,'html.parser')
# 查找最小父级标签
list_foods = bs_foods.find_all('div',class_='info pure-u')
# 定义一个空列表
list_res = []
for food in list_foods:
# 提取第n个父级标签中的<a>标签
tag_a = food.find('a')
# 菜名,使用[17:-13]切掉了多余的信息
name = tag_a.text[17:-13]
# 获取URL
URL = 'http://www.xiachufang.com'+tag_a['href']
# 提取第n个父级标签中的<p>标签
tag_p = food.find('p',class_='ing ellipsis')
# 食材,使用[1:-1]切掉了多余的信息
ing = tag_p.text[1:-1]
# 将菜名、URL、食材,封装为列表,添加进list_res
list_res.append([name,URL,ing])
# 打印
print(list_res)
以下是另一种方法
# 引用requests库
import requests
# 引用BeautifulSoup库
from bs4 import BeautifulSoup
# 添加请求头
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
# 获取数据
res_foods = requests.get('http://www.xiachufang.com/explore/',headers=headers)
# 解析数据
bs_foods = BeautifulSoup(res_foods.text,'html.parser')
# 查找包含菜名和URL的<p>标签
tag_name = bs_foods.find_all('p',class_='name')
# 查找包含食材的<p>标签
tag_ingredients = bs_foods.find_all('p',class_='ing ellipsis')
# 创建一个空列表,用于存储信息
list_all = []
# 启动一个循环,次数等于菜名的数量
for x in range(len(tag_name)):
# 提取信息,封装为列表。注意下面[18:-14]切片和之前不同,是因为此处使用的是<p>标签,而之前是<a>
list_food = [tag_name[x].text[18:-14],tag_name[x].find('a')['href'],tag_ingredients[x].text[1:-1]]
# 将信息添加进list_all
list_all.append(list_food)
# 打印
print(list_all)
注释:
text获取到的是该标签内的纯文本信息,即便是在它的子标签内,也能拿得到。但提取属性的值,只能提取该标签本身的。
最后
以上就是炙热小松鼠为你收集整理的【PythonPlanet】爬虫_菜谱的全部内容,希望文章能够帮你解决【PythonPlanet】爬虫_菜谱所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复