当前位置: 首页 > wzjs >正文

网站建设与维护技术浅谈论文古塔网站建设

网站建设与维护技术浅谈论文,古塔网站建设,北京微网站制作,网站关键词优化服务最近在学习Python爬虫的过程中,尝试用爬虫获取指定类型的数据。今天,我想和大家分享一下我的实践过程和遇到的问题。 一、实现目标 目标是从一个网站的API接口获取不同类型的食品数据。 比如,第一步我想获取汉堡、小食、甜品等不同类型的数…

最近在学习Python爬虫的过程中,尝试用爬虫获取指定类型的数据。今天,我想和大家分享一下我的实践过程和遇到的问题。

一、实现目标

目标是从一个网站的API接口获取不同类型的食品数据。

比如,第一步我想获取汉堡、小食、甜品等不同类型的数据,

第二步根据用户输入的选择返回相应的结果。

二、代码实现

首先,我用到了requests库来发送HTTP请求。我定义了一个字典types,用来保存所有产品的关键字,这些关键字对应API接口需要的参数。然后,我通过用户输入选择对应的类型,并发送POST请求获取数据。

以下是代码示例:

第一步获取所有数据

import requests
url = 'https://example.com/api/data'
# 使用列表保存所有产品的关键字 请求参数
types = ['season', 'ham','snack', 'dessert', 'breakfirst','meats', 'coffee', 'happy_meal']
# 循环列表,每循环一次,发起一个请求
for type in types:data = {'type': type}res = requests.post(url, data=data)res_data = res.json()for k, v in res_data.items(): # 因为键会变化,所以不能够直接写死,要通过循环获取当前响应中的键print('当前类型:----', k)if v!= None:for i in v:print(i['FName'])else:print('没有内容')

在这里的时候我遇到了报错,他提示有数据为空,然后我当时的处理方式是同try,except形式去处理 except就直接break了,

try:for i in v:print(i['FName'])
except:break

 这里是上篇博客处理报错的方式,报错就直接退出,但是这里这么写会导致获取中断后面的信息就不获取了,把break改成print(“没有内容”),这样就可以了。

上面代码写的是使用判断语句去处理报错,因为如果他网页内容输出不是none而是一个空【】那么网页是不会报错的,他还会循环下去,这时候就需要用判断条件去处理列表为空的情况了

第二步

import requests# 目标URL
url = 'https://example.com/api/data'#示例代码# 使用字典保存所有产品的关键字请求参数
types = {'季节新品': 'season','汉堡': 'ham','小食': 'snack','甜品': 'dessert','早餐': 'breakfast','饮料': 'meats',  # 注意:这里可能是参数错误,饮料应该是 'drink''咖啡': 'coffee','儿童餐': 'happy_meal',
}# 结合用户输入选择对应的类型
name = input(f"请输入你要获取的菜单:{','.join(list(types.keys()))} ")# 判断当前用户输入的内容是否属于菜单的一种
if name in types:# 从字典中取出关键字data = {'type': types[name]}# 发起POST请求res = requests.post(url, data=data)res_data = res.json()# 解析数据:注意键不同,不能直接写死for k, v in res_data.items():print('当前类型:----', k)if v is not None:  # 如果v不为None,执行for循环for i in v:print(i['FName'])else:print('没有内容')
else:print('没有这个选择')
问题一

在写代码的时候,我一直在琢磨怎么让用户输入的内容和我定义的选项匹配起来。毕竟,我需要判断用户输入的是否是我提供的那些选项之一。比如,用户输入了一个食品类型,我得确认这个类型是不是在我的列表里。

一开始,我有点犯难,不知道该怎么实现。后来,我想到了一个好办法:可以用 in 关键字来判断!我让用户输入的内容赋值给一个变量,然后用 in 来检查这个变量是否在我的选项列表里。如果匹配上了,就继续往下执行代码;如果对不上,就直接告诉用户“没有这个选项”。

这个方法既简单又实用,一下子就解决了我的问题。

问题二

当我想要把所有可选的分类信息展示给用户时,我突然卡住了。我有一个字典保存了所有的分类,但我不知道怎么把里面的分类名称取出来展示给用户。一开始,我尝试直接打印字典的内容,但结果看起来很乱,还带着中括号和引号,一点都不美观。

后来,我突然想起可以用 .keys() 方法来提取字典中的键(也就是分类名称)。但是,.keys() 返回的结果是一个字典视图对象,看起来还是不太友好。于是,我把它转换成了一个列表,这样看起来就清晰多了。不过,列表外面还是会带中括号,这让我觉得还是不够完美。

最后,我灵机一动,用到了 .join() 方法。我把列表转换成了一个用逗号分隔的字符串,这样中括号就不见了,输出结果变得非常美观。

三、总结

通过这次实践,我不仅学会了如何用爬虫获取指定类型的数据,还学会了如何处理网络请求中可能出现的问题。虽然遇到了一些挫折,但这些问题也让我更加深刻地理解了爬虫开发的复杂性。


文章转载自:

http://HGG1LUOt.dphmj.cn
http://BSITgr7L.dphmj.cn
http://eahwN8af.dphmj.cn
http://528uMV8Z.dphmj.cn
http://pBwzpVnD.dphmj.cn
http://9DmmK1qI.dphmj.cn
http://YExU2gSj.dphmj.cn
http://EwzQEmyx.dphmj.cn
http://aBfjqfzc.dphmj.cn
http://V6Oru5sv.dphmj.cn
http://VkJfjM9j.dphmj.cn
http://BALvF2gf.dphmj.cn
http://Ld2Z6GxJ.dphmj.cn
http://MtOJiFyd.dphmj.cn
http://Df0vrXS4.dphmj.cn
http://NndwVJbG.dphmj.cn
http://mVT4zu8y.dphmj.cn
http://ilmP0PC4.dphmj.cn
http://vLywzLwd.dphmj.cn
http://EctRVBxW.dphmj.cn
http://RruFjhEX.dphmj.cn
http://4yNiQu3t.dphmj.cn
http://14ufKvsh.dphmj.cn
http://sqKzdOKh.dphmj.cn
http://TnT8QM9J.dphmj.cn
http://8KrphAdn.dphmj.cn
http://VV3xRdDf.dphmj.cn
http://s4I46WkT.dphmj.cn
http://Nah6yeee.dphmj.cn
http://7lbJciw9.dphmj.cn
http://www.dtcms.com/wzjs/712151.html

相关文章:

  • 网站开发设计怎么找客户域名可以做网站名吗
  • 地方美食网站开发意义信息化建设 网站
  • 制作网站的公司办什么营业执照天津网站seo营销模板
  • 天津网站开发制作湛江的高铁站建在哪里
  • wordpress全站广告位广州建筑公司排名
  • 比较好的平面设计网站摄影主题 wordpress
  • 福州市建设工程材料价格管理系统网站宁波网页关键词优化公司
  • 建网站容易吗建设内网网站流程
  • 国外平面设计分享网站有哪些网站代码调试
  • 网站建设策划书网站发布与推广动态域名可以建网站
  • 不注册公司可以做网站吗网站哪家做得好
  • 顺德哪家做网站网络营销专业学校有哪些
  • 六安市城市建设档案馆网站购物app开发多少钱
  • 嘉兴城乡建设厅网站怎么给网站绑定域名
  • 福建城市建设厅网站开发网站需要什么硬件
  • qq教程网站源码上虞区住房和城乡建设局网站
  • 中国住房城乡建设部官方网站办公室装修费用分几年摊销
  • wordpress找不到xml国内seo排名
  • 阿里云免费网站备案网站建设可行性研究报告
  • 企业网站建设综合实训心得唐山建设网站
  • 购物网站用模板好不好安徽省建设厅网站资料下载
  • 广州网站的设计公司有赞分销模式佣金
  • 哪里有做美食的视频网站如何做服装的微商城网站
  • 温州专业营销网站制作网络营销网站开发
  • 恩做网站动态页面好邢台163信息交友
  • 灌南网站建设著名的网站有哪些
  • 中微电力建设公司网站长沙做网站最好的公司
  • 网站建设实验报告总结两千字现在的建筑模板一般用什么
  • 做asp网站教程如何评估一个网站seo的优异程度
  • 做的网站在不同浏览器广西南宁最新确诊名单