【python爬虫】—星巴克产品
- 其他
- 2025-08-18 22:06:03

文章目录 需求爬取星巴克产品以及图片,星巴克菜单 python爬虫爬取结果 需求 爬取星巴克产品以及图片,星巴克菜单 网页分析: 首先,需要分析星巴克官方网站的结构,了解菜单栏的位置、布局以及菜单项的标签或类名等信息。发送 HTTP 请求: 使用 Python 的 requests 模块发送 HTTP GET 请求,获取星巴克网页的 HTML 内容。解析 HTML: 使用一个 HTML 解析库(如 BeautifulSoup)解析网页的 HTML 内容,以便从中提取出菜单栏的数据。定位菜单栏元素: 使用解析库的选择器功能(如 CSS 选择器或 XPath)定位菜单栏所在的 HTML 元素。提取菜单数据: 从菜单栏元素中提取菜单项的信息,可能包括菜单项名称、图片等。数据存储: 将提取的菜单数据存储到适合的数据结构中。 python爬虫 获取网页源码,这里没有反爬手段,不需要添加其他参数 import urllib from bs4 import BeautifulSoup import requests base_url = " .starbucks /menu/" response = urllib.request.urlopen(base_url) content = response.read().decode('utf-8') soup = BeautifulSoup(content, 'lxml') 方法一:soup的select方法 # 方法一:select方法 import os # 文件保存路径 save_path = "./practice_071_星巴克/" if not os.path.exists(save_path): os.makedirs(save_path) name_list = soup.select('ul[class="grid padded-3 product"]') # name_list[0].select('li div')[0]["style"] for name in name_list: submenu_pic = name.select('li div') submenu_name = name.select('li strong') for pic_url,name in zip(submenu_pic, submenu_name): suffix = pic_url["style"].split('("')[-1].split('")')[0] # 文件地址 和 名称 picture_url = ' .starbucks ' + suffix picture_name = name.get_text() + ".jpg" # 文件不支持名称中含有字符 '/',' ' picture_name = picture_name.strip().replace("/", 'or') # 方法1:urlretrieve # urllib.request.urlretrieve(url=picture_url, filename=os.path.join(save_path,picture_name)) # 方法2:写入文件形式 src_response = urllib.request.urlopen(picture_url) pic_content = src_response.read() with open(os.path.join(save_path,picture_name), 'wb') as fp: fp.write(pic_content) print("{} 完成,地址为 {}".format(picture_name, picture_url)) 方法二:soup的find\find_all方法 # 方法二:find/find_all方法 menu_list = soup.find('div', class_="wrapper fluid margin page-menu-list").find_all('li') for name in menu_list: suffix = name.find('div')["style"].split('("')[-1].split('")')[0] # 文件地址 和 名称 picture_url = ' .starbucks ' + suffix picture_name = name.find("strong").get_text() + ".jpg" # 文件不支持名称中含有字符 '/',' ' picture_name = picture_name.strip().replace("/", 'or') urllib.request.urlretrieve(url=picture_url, filename=os.path.join(save_path,picture_name)) print("{} 完成,地址为 {}".format(picture_name, picture_url)) 爬取结果
【python爬虫】—星巴克产品由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【python爬虫】—星巴克产品”
上一篇
多线程带来的的风险-线程安全