ptype2.onchange = function() { var selectedValue = ptype2.value; var textValue1 = cbvalue.value; var textValue2 = ""; if (selectedValue == "国有大型企业(不含公共事业类项目)") { textValue2 = textValue1; } else if (selectedValue == "地产类项目") { textValue2 = textValue1 + 0.015; } else { textValue2 = textValue1 + 0.01; } acost.value = textValue2; }这段代码中,textValue2的值是textValue1和另一个数值的字符串拼接结果,而不是数值相加的结果,如何修改成数值相加的结果
时间: 2023-11-27 11:49:48 浏览: 140
可以使用parseFloat()函数将textValue1和0.015或0.01转换为数值类型,然后再进行相加操作,最后再将结果转换为字符串。修改后的代码如下:
```
ptype2.onchange = function() {
var selectedValue = ptype2.value;
var textValue1 = cbvalue.value;
var textValue2 = "";
if (selectedValue == "国有大型企业(不含公共事业类项目)") {
textValue2 = parseFloat(textValue1);
} else if (selectedValue == "地产类项目") {
textValue2 = parseFloat(textValue1) + 0.015;
} else {
textValue2 = parseFloat(textValue1) + 0.01;
}
acost.value = textValue2.toString();
}
```
这样就能够得到数值相加的结果了。
相关问题
import requests import parsel headers = { 'Referer': 'https://www.ximalaya.com/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35' } def download_one_music(song_id, name): api_url = 'https://www.ximalaya.com/revision/play/v1/audio?id='+song_id+'&ptype=1' response = requests.get(api_url, headers=headers) src = response.json()['data']['src'] print(src) response = requests.get(src,headers=headers) print(response) with open(name + '.m4a',mode='wb')as f: f.write(response.content) response = requests.get('https://www.ximalaya.com/album/68559551',headers=headers) html =response.text selector = parser.Selector(html) lis = selector.css('li._nO') for li in lis: title = li.css('div.text._nO a::attr(title)').get() href = li.css('div.text._nO a::attr(title)').get() song_id = href.split('/')[-1] print(song_id,title)
这段代码是一个Python脚本,用于从喜马拉雅网站下载音乐。代码中使用了requests和parsel库,headers中设置了请求头信息。其中,download_one_music函数是用于下载单个音乐的,通过传入歌曲ID和名称来进行下载。该函数中首先通过API接口获取到音乐的下载地址src,然后再通过requests库进行下载,最后将文件保存到本地。代码中还使用了循环遍历li元素,通过CSS选择器获取到每个音乐的ID和名称,从而进行批量下载。需要注意的是,这种爬取方式可能会违反喜马拉雅网站的规定和法律法规,建议在遵守相关法律法规的前提下使用。
import re import requests import parsel # 数据解析模块 def change_title(title): """处理文件名非法字符的方法""" pattern = re.compile(r"[\/\\\:\*\?\"\<\>\|]") # '/ \ : * ? " < > |' new_title = re.sub(pattern, "_", title) # 替换为下划线 return new_title for page in range(13, 33): print('---------------正在爬取第{}页的数据----------------'.format(page)) # 1.确定数据所在的链接地址(url) 逆向分析 网页性质(静态网页/动态网页) url = 'https://www.ximalaya.com/youshengshu/4256765/p{}/'.format(page) headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'} # 2.通过代码发送url地址的请求 response = requests.get(url=url, headers=headers) html_data = response.text # print(html_data) # 3.解析数据(要的, 筛选不要的) 解析音频的 id值 selector = parsel.Selector(html_data) lis = selector.xpath('//div[@class="sound-list _is"]/ul/li') for li in lis: try: title = li.xpath('.//a/@title').get() + '.m4a' href = li.xpath('.//a/@href').get() # print(title, href) m4a_id = href.split('/')[-1] # print(href, m4a_id) # 发送指定id值json数据请求(src) json_url = 'https://www.ximalaya.com/revision/play/v1/audio?id={}&ptype=1'.format(m4a_id) json_data = requests.get(url=json_url, headers=headers).json() # print(json_data) # 提取音频地址 m4a_url = json_data['data']['src'] # print(m4a_url) # 请求音频数据 m4a_data = requests.get(url=m4a_url, headers=headers).content new_title = change_title(title) # print(new_title) # 4.数据持久化(保存) with open('video\\' + new_title, mode='wb') as f: f.write(m4a_data) print('保存完成:', title) except: pass
这段代码是一个简单的爬虫程序,用于爬取喜马拉雅网站上的有声书数据,并将音频文件保存到本地。具体来说,程序的实现步骤如下:
1. 确定需要爬取数据的链接地址,并使用 requests 库发送 GET 请求获取页面 HTML 数据。
2. 使用 parsel 库解析 HTML 数据,获取音频文件的标题和链接地址。
3. 通过解析的链接地址发送 GET 请求获取音频文件的 JSON 数据,提取音频文件的下载地址。
4. 使用 requests 库发送 GET 请求获取音频文件数据,并将数据保存到本地指定的文件夹和文件名中。
其中,`change_title` 函数用于将文件名中的非法字符替换为下划线,避免文件名中含有无法识别的字符导致文件保存失败。在循环中,通过 `for page in range(13, 33)` 语句遍历需要爬取的页面,然后依次爬取每个页面上的音频文件数据。
需要注意的是,该程序仅供学习和研究使用,未经授权不得用于商业用途。同时,爬取网站数据也需要遵守相关法律法规,不得侵犯他人的知识产权和隐私权。
阅读全文