编写程序完成:随机生成一组数字,要求返回1-50范围内15个数量的不重复数字。python
import random
# 生成1-50的所有数字
numbers = list(range(1, 51))
# 随机选择其中15个数字作为结果
result = random.sample(numbers, 15)
# 输出结果
print(result)
首先生成1-50范围内的所有数字,使用range函数和list函数实现。然后,使用random模块中的sample函数从中随机选择15个数字,生成不重复的结果。
最后,输出结果,使用print函数将结果打印到控制台。
在实现爬取动态加载
的数据信息时,首先需要在浏览器的网络监视器中根据动态加载的技术选择网络请求的类型,然后通过逐个筛选的方式查询预览信息中的关键数据,并获取对应的请求地址,最后进行信息的解析工作即可。具体步骤如下:
F12
打开开发者工具
,然后选择Network(网络监视器)
并在网络类型中选择JS
,再按快捷键F5
刷新,如下图所示。Preview(请求结果预览)
中核对是否为需要获取的动态加载
数据,如下图所示。动态加载
的数据信息核对完成后,单击Headers
获取当前的网络请求地址以及所需参数,如下图所示。import requests
import json
# 获取商品价格的请求地址
url = "https://c0.3.cn/stock?skuId=12464037&cat=1713,3259,3333&venderId=1000077923&area" \
"=4_113_9786_0&buyNum=1&choseSuitSkuIds=&extraParam={%22originid%22:%221%22}&ch=1&fqsp=0&" \
"pduid=1573698619147398205303&pdpin=jd_635f3b795bb1c&coord=&detailedAdd=&callback=jQuery6495921"
jQuery_id = url.split("=")[-1] + "("
# 头部信息
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) "
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36"
}
# 发送网络请求
response = requests.get(url, headers=headers)
if response.status_code == 200:
goods_dict = json.loads(response.text.replace(jQuery_id, "")[:-1]) # 反序列化
print(f"当前售价为: {goods_dict['stock']['jdPrice']['op']}")
print(f"定价为: {goods_dict['stock']['jdPrice']['m']}")
print(f"会员价为: {goods_dict['stock']['jdPrice']['tpp']}")
else:
print("请求失败!")
笔者在写博文的时候,价格发生了变化,运行结果如下图所示:注意
:爬取动态加载
数据信息时,需要根据不同的网页使用不同的方式进行数据的提取。如果在运行源码时出现了错误,请根据操作步骤获取新的请求地址即可。使用Python可以通过以下步骤随机生成一组数字,保证返回的数字都在1-50范围内且不重复,数量为15个:
导入random库,使用random.sample()函数生成不重复的随机数序列,参数中设置范围为1-50,生成的数量为15个。
将随机数序列排序,采用sort()函数。
将随机数序列转为列表,可以使用list()函数或直接用中括号[ ]。
以下是具体的代码实现:
import random
random_list = random.sample(range(1, 51), 15) # 生成15个1-50内不重复的随机数序列
random_list.sort() # 排序
print(random_list) # 输出结果
# 或者直接将随机数序列转为列表
# random_list = list(random.sample(range(1, 51), 15))
# 或
# random_list = [random.randint(1, 50) for i in range(15)]