a = 'a,b,c'
# 以逗号进行切割
print(a.split(','))
a = 'a+b+c'
# 以+进行切割
print(a.split('+'))
运行结果:
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\python.exe C:\Users\Administrator\PycharmProjects\htmlProject\异步爬虫\split方法.py
['a', 'b', 'c']
['a', 'b', 'c']
进程已结束,退出代码0
二、律师所案例
# https://blog.csdn.net/cxyxx12/article/details/133177814?ops_request_misc=&request_id=&biz_id=102&utm_term=400%E5%B0%8F%E5%8D%95%E5%AD%90&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-133177814.142^v100^pc_search_result_base2&spm=1018.2226.3001.4187
# 项目url:https://www.hklawsoc.org.hk/zh-HK/Serve-the-Public/The-Law-List/Members-with-Practising-Certificate?name=&jur=&sort=1
import json
import random
import re
import time
import requests
class MySpider(object):
def __init__(self):
self.url = 'https://www.hklawsoc.org.hk/zh-HK/Serve-the-Public/The-Law-List/Members-with-Practising-Certificate?name=&jur=&sort=1'
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
}
self.sum_dic = {
'list': []
}
def get_html(self):
response = requests.get(url=self.url, headers=self.headers)
result = re.compile('lass="responsive">(.*?)</table>', re.S).findall(response.text)[0]
result2 = re.compile('<tr>.*?<td>\d+</td>.*?<a href=\'(.*?)\'>(.*?)</a>.*?<a.*?>(.*?)</a>', re.S).findall(result)
for i in result2:
info_url = i[0]
english_name = i[1]
if i[2].strip(): # .strip()去除两边的空
chinese_name = i[2]
else:
chinese_name = '无'
self.get_info(info_url, english_name, chinese_name)
time.sleep(random.random())
def pd(self, x):
if x:
return x[0]
else:
return '无'
def get_info(self, info_url, english_name, chinese_name):
response = requests.get(url=info_url, headers=self.headers).text
certification_date = self.pd(re.compile('<td>在 香 港 認 許 日 期</td>.*?<td>(.*?)</td>', re.S).findall(response))
position = self.pd(re.compile('<td>職 位</td>.*?<lable>(.*?)</lable>', re.S).findall(response))
englishCompanyName = self.pd(re.compile('<td>律 師 行 / 公 司 \(英 文\).*?<a.*?>(.*?)</a>', re.S).findall(response))
chineseCompanyName = self.pd(re.compile('<td>律 師 行 / 公 司 \(中 文\).*?<a.*?>(.*?)</a>', re.S).findall(response))
englishAddressName = self.pd(re.compile('地 址 \(英 文\).*?<td>(.*?)</td>', re.S).findall(response))
chineseAddressName = self.pd(re.compile('地 址 \(中 文\).*?<td>(.*?)</td>', re.S).findall(response))
dic = {
'英文名': english_name,
'中文名': chinese_name,
'认证时间': certification_date,
'职位': position,
'公司英文名': englishCompanyName,
'公司中文名': chineseCompanyName,
'地址英文名': englishAddressName.replace('\r\n', ''),
'地址中文名': chineseAddressName.replace('\r\n', ''),
}
self.sum_dic['list'].append(dic)
print(dic)
def save_json(self):
with open('hk_law_soc.json', 'w', encoding='utf-8') as f:
json.dump(self.sum_dic, f, ensure_ascii=False, indent=4)
if __name__ == '__main__':
my_spider = MySpider()
my_spider.get_html()
my_spider.save_json()
运行结果:
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\python.exe C:\Users\Administrator\PycharmProjects\htmlProject\异步爬虫\律师所.py
{'英文名': 'ABATE DUNCAN ARTHUR WILLIAM', '中文名': '无', '认证时间': '12/1994', '职位': '顧問', '公司英文名': 'JOHNSON STOKES & MASTER', '公司中文名': '孖士打律師行', '地址英文名': '16-18/F, PRINCE'S BUILDING,10 CHATER ROAD, CENTRAL,HONG KONG', '地址中文名': '香港中環遮打道10號太子大廈16-18樓'}
{'英文名': 'ABDULLAH GLORIA', '中文名': '石韻怡', '认证时间': '12/1993', '职位': '合夥人', '公司英文名': 'LO & LO', '公司中文名': '羅文錦律師樓', '地址英文名': '7/F, WORLD-WIDE HOUSE,19 DES VOEUX ROAD CENTRAL,HONG KONG', '地址中文名': '香港德輔道中19號環球大廈7樓'}
{'英文名': 'ABERCROMBY DANIEL JOHN', '中文名': '无', '认证时间': '09/2024', '职位': '合夥人', '公司英文名': 'GIBSON, DUNN & CRUTCHER', '公司中文名': '吉布森律師事務所', '地址英文名': 'SUITES 3204-08 & 33/F, GLOUCESTER TOWER,THE LANDMARK, 15 QUEEN'S ROAD CENTRAL,HONG KONG', '地址中文名': '香港中環皇后大道中15號置地廣場告羅士打大廈32樓3204-08室及33樓'}
{'英文名': 'ABERNETHY ANDREW HAMILTON', '中文名': '无', '认证时间': '05/2011', '职位': '獨 營 執 業 者', '公司英文名': 'ABERNETHY & CO.', '公司中文名': '无', '地址英文名': '4B, RICE MERCHANTS BUILDING,77-78 CONNAUGHT ROAD WEST, SHEUNG WAN,HONG KONG', '地址中文名': '香港上環干諾道西77-78號米行大廈4B'}
{'英文名': 'ADAMS DAVID GREGORY', '中文名': '歐大偉', '认证时间': '11/2000', '职位': '无', '公司英文名': '×', '公司中文名': '无', '地址英文名': '无', '地址中文名': '无'}
{'英文名': 'AGGARWAL JAY SHREE', '中文名': '无', '认证时间': '05/2002', '职位': '无', '公司英文名': '无', '公司中文名': '无', '地址英文名': '无', '地址中文名': '无'}
{'英文名': 'AGRASUT MARK', '中文名': '王獻君', '认证时间': '06/2010', '职位': '无', '公司英文名': '×', '公司中文名': '无', '地址英文名': '37/F., THE CENTRIUM,60 WYNDHAM STREET, CENTRAL, HONG KONG', '地址中文名': '无'}
{'英文名': 'AGRAWAL ANKITA RAJIV', '中文名': '无', '认证时间': '06/2025', '职位': '助理律師', '公司英文名': 'CRB', '公司中文名': '周韻儀,胡布珍律師行', '地址英文名': '20/F, PRINTING HOUSE,6 DUDDELL STREET, CENTRAL,HONG KONG', '地址中文名': '香港中環都爹利街6號印刷行20樓'}
{'英文名': 'AHERN WILLIAM ANDREW', '中文名': '无', '认证时间': '08/1988', '职位': '獨 營 執 業 者', '公司英文名': 'AHERN LAWYERS', '公司中文名': '何敦律師行', '地址英文名': '7/F, RUTTONJEE HOUSE,11 DUDDELL STREET, CENTRAL,HONG KONG', '地址中文名': '香港中環都爹利街十一號律敦治大廈七樓'}
{'英文名': 'AHMED ASHFAQ', '中文名': '丹尼爾', '认证时间': '12/2024', '职位': '助理律師', '公司英文名': 'CHAUDHRY SOLICITORS', '公司中文名': '无', '地址英文名': 'ROOM 212, 2/F, HANKOW CENTRE,5-15 HANKOW ROAD, TSIM SHA TSUI, KOWLOONHONG KONG', '地址中文名': '香港九龍尖沙咀漢口道5-15號漢口中心2樓212室'}
{'英文名': 'AHMED HIBBAN RAFIQUE', '中文名': '无', '认证时间': '03/2017', '职位': '合夥人', '公司英文名': 'LINKLATERS', '公司中文名': '年利達律師事務所', '地址英文名': 'ROOMS 801-802 & 810, 9-12/F, ALEXANDRA HOUSE,CHATER ROAD, CENTRAL,HONG KONG', '地址中文名': '香港遮打道歷山大廈9-12樓801-802及810室'}
{'英文名': 'AHUJA SHEILA', '中文名': '无', '认证时间': '12/2009', '职位': '无', '公司英文名': '×', '公司中文名': '无', '地址英文名': '9/F THREE EXCHANGE SQUARE, CENTRAL, HONG KONG', '地址中文名': '无'}
{'英文名': 'AITKEN ALEXANDER ROBERT WINSTON', '中文名': '无', '认证时间': '05/2009', '职位': '无', '公司英文名': '无', '公司中文名': '无', '地址英文名': '无', '地址中文名': '无'}
{'英文名': 'AJWANI NIKITA CHANG CHIH-HSUAN', '中文名': '張芷瑄', '认证时间': '12/2022', '职位': '助理律師', '公司英文名': 'KING & WOOD MALLESONS', '公司中文名': '金杜律師事務所', '地址英文名': '13/F, GLOUCESTER TOWER, THE LANDMARK,15 QUEEN'S ROAD CENTRAL,HONG KONG', '地址中文名': '香港中環皇后大道中15號置地廣場告羅士打大廈13樓'}
{'英文名': 'AKA KATHLEEN MARGARET', '中文名': '无', '认证时间': '06/2016', '职位': '合夥人', '公司英文名': 'WEIL, GOTSHAL & MANGES', '公司中文名': '威嘉國際律師事務所', '地址英文名': '29TH FLOOR, ALEXANDRA HOUSE,18 CHATER ROAD,CENTRAL,HONG KONG', '地址中文名': '香港中環遮打道18號歷山大廈29樓'}
{'英文名': 'AKHTAR HINA NAVEED', '中文名': '无', '认证时间': '04/2012', '职位': '无', '公司英文名': '无', '公司中文名': '无', '地址英文名': '无', '地址中文名': '无'}
{'英文名': 'ALAM JEFFREY MARK', '中文名': '林逸昇', '认证时间': '07/1987', '职位': '顧問', '公司英文名': 'MINTERELLISON LLP', '公司中文名': '銘德有限法律責任合夥律師事務所', '地址英文名': '43/F, HOPEWELL CENTRE,183 QUEEN'S ROAD EAST,HONG KONG', '地址中文名': '香港皇后大道東183號合和中心43樓'}
{'英文名': 'ALLEN CHARLES WILLIAM', '中文名': '无', '认证时间': '05/1995', '职位': '合夥人', '公司英文名': 'REYNOLDS PORTER CHAMBERLAIN', '公司中文名': '无', '地址英文名': '3504-06, 35/F, ONE TAIKOO PLACE,979 KING'S ROAD, QUARRY BAY,HONG KONG', '地址中文名': '香港鰂魚涌英皇道979號太古坊一座35樓3504-06室'}
{'英文名': 'ALLEN STEVEN PAUL', '中文名': '无', '认证时间': '11/1994', '职位': '无', '公司英文名': '×', '公司中文名': '无', '地址英文名': '48/F CHEUNG KONG CENTER,2 QUEEN'S ROAD CENTRAL,HONG KONG', '地址中文名': '无'}
{'英文名': 'ALLISON DAVID ANDREW', '中文名': '无', '认证时间': '04/2008', '职位': '无', '公司英文名': '×', '公司中文名': '无', '地址英文名': '24/F DEVON HOUSE, TAIKOO PLACE, QUARRY BAY, HONG KONG', '地址中文名': '无'}
{'英文名': 'AMINI NIMA', '中文名': '无', '认证时间': '05/2012', '职位': '合夥人', '公司英文名': "O'MELVENY & MYERS", '公司中文名': '美邁斯律師事務所', '地址英文名': '31/F, AIA CENTRAL,1 CONNAUGHT ROAD CENTRAL,HONG KONG', '地址中文名': '香港中環干諾道中1號友邦金融中心31樓'}
{'英文名': 'AMOUR PETER FRANCIS', '中文名': '无', '认证时间': '05/1994', '职位': '无', '公司英文名': '×', '公司中文名': '无', '地址英文名': 'ROOM 3601, PCCW TOWER, TAIKOO PLACE, 979 KING'S ROAD, QUARRY BAY, HONG KONG', '地址中文名': '无'}
{'英文名': 'AN FONG SHUO SEAN', '中文名': '安方碩', '认证时间': '08/2016', '职位': '助理律師', '公司英文名': 'HOWSE WILLIAMS', '公司中文名': '何韋律師行', '地址英文名': '27/F, ALEXANDRA HOUSE,18 CHATER ROAD, CENTRAL,HONG KONG', '地址中文名': '香港中環遮打道18號歷山大廈27樓'}
{'英文名': 'AN SHAN', '中文名': '安 姍', '认证时间': '12/2009', '职位': '无', '公司英文名': '×', '公司中文名': '无', '地址英文名': '10/F, AGRICULTURAL BANK OF CHINA TOWER,50 CONNAUGHT ROAD CENTRAL, HONG KONG', '地址中文名': '无'}
{'英文名': 'ANDERSON DANIEL MATTHEW', '中文名': '无', '认证时间': '04/2014', '职位': '合夥人', '公司英文名': 'FRESHFIELDS', '公司中文名': '富而德律師事務所', '地址英文名': '55 & 56/F, ONE ISLAND EAST,TAIKOO PLACE, QUARRY BAY,HONG KONG', '地址中文名': '香港鰂魚涌太古坊港島東中心55至56樓'}
{'英文名': 'ANDERSON GAVIN ALEXANDER', '中文名': '无', '认证时间': '07/2013', '职位': '合夥人', '公司英文名': 'DEBEVOISE & PLIMPTON LLP', '公司中文名': '德普律師事務所(有限法律責任合夥)', '地址英文名': '21/F, AIA CENTRAL,1 CONNAUGHT ROAD CENTRAL,HONG KONG', '地址中文名': '香港中環干諾道中一號友邦金融中心二十一樓'}
{'英文名': 'ANG CHEE KHIAN DESMOND', '中文名': '洪志健', '认证时间': '05/2009', '职位': '合夥人', '公司英文名': 'SIDLEY AUSTIN', '公司中文名': '盛德律師事務所', '地址英文名': '39/F, TWO INTERNATIONAL FINANCE CENTRE,CENTRAL,HONG KONG', '地址中文名': '香港中環國際金融中心二期39樓'}
{'英文名': 'ANG ENG KIAT BERNARD', '中文名': '汪英杰', '认证时间': '04/1999', '职位': '合夥人', '公司英文名': 'PINSENT MASONS', '公司中文名': '品誠梅森律師事務所', '地址英文名': 'RMS 5001-4 & 5008, 50/F, CENTRAL PLAZA,18 HARBOUR ROAD,HONG KONG', '地址中文名': '香港港灣道十八號中環廣場五十樓'}
{'英文名': 'ANG YANG TING CYNTHIA', '中文名': '翁颺婷', '认证时间': '04/2020', '职位': '合夥人', '公司英文名': 'WONG ALAN LLP', '公司中文名': '天成律師事務所有限法律責任合夥', '地址英文名': 'UNIT C, 10/F, TOWER B, BILLION CENTRE,1 WANG KWONG ROAD, KOWLOON BAY,HONG KONG', '地址中文名': '香港九龍灣宏光道1號億京中心B座10樓C室'}
{'英文名': 'ANTONIOU SOPHIE MARIA LOUISE', '中文名': '韓淑霏', '认证时间': '12/2001', '职位': '无', '公司英文名': '无', '公司中文名': '无', '地址英文名': '无', '地址中文名': '无'}
进程已结束,退出代码0
三、网易云音乐-单线程案例
import re, time
import requests
from lxml import etree
class Spider32(object):
def __init__(self):
self.url = 'https://music.163.com/discover/toplist'
self.headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'no-cache',
'cookie': 'NMTID=00Ov5z6wcxuo15eaE1lrTGmnso8gTQAAAGQSghhWw; _iuqxldmzr_=32; _ntes_nnid=72ae531508eda75f71914fb5e12ae20c,1719228981776; _ntes_nuid=72ae531508eda75f71914fb5e12ae20c; WEVNSM=1.0.0; WNMCID=xbndav.1719228983280.01.0; WM_TID=2%2BLp8JtKXtRAVAVBBQbXRWDIUcEsh08j; sDeviceId=YD-THnVH0sNdQFAElQUQFKU6sV2ZfW5bm0V; ntes_utid=tid._.LS30kbK2MCpERhUVVAbCETHMRNQtqGgV._.0; __root_domain_v=.163.com; _qddaz=QD.357823118486883; wyy_uid=e17211a5-f2f8-43e6-8d19-e83a5261a068; locale=zh_CN; _gcl_au=1.1.1341541936.1725278469; __snaker__id=Jyj84HFqnjFZ2vwi; gdxidpyhxdE=bJftabRh0cuuLlJ6w%2FGX1DrZ4kGSerHBx5xjXC9zs125suZGtmc73Eo8kCQJHB6dx%5CItgyjj78AU%2FRRaVfLas0Jq%2B02CjSMKMAE3TDP8A1Cz81VcOJBN%2BzDknk4w4e65GnU%2F4VjzrZsGSTR92nM4Wf2MG%2BWZHSH7%5C9tXJLAiruj8hZ4J%3A1727522571213; __csrf=d6c3783b23ccb9a15fb77fedf952bfb5; MUSIC_U=004A1915C37FDC1AE8FA94FEF771286F709D82894AC6F14E59C4D6D4BFA72C9A407CA22922D3099217AD87E55BA73FFF748ECF1B488426E6E6AEE390734D3963E6E13263F8F8942239A47D75ECE8933BE1C983B4A4811922BEC2BB169FB354919183252E7A51755B0359D7913EACB0969525C38E194E1B90382775D1BBB555684ECBB142C11BF67BA31B06F1A91FBC60F626C0BF3F0DD42B904942D81DDEAAD27E388C1CE000C739D5E66DF0BD8FE1BD290B6616F2EC2A255C55D620B6B40D1B18D87415F11CED2D0CB389A303D5F36A5D26F8EB092565FB2EECDF42A50B8650037B25BAAB45FCC83820CAA0ACB97623866A3270DB341DABD7B32371ACDEEFFB26406688FFBA87B7E032F0F00382788110E69C1B33FD7562A06D5B45F0DB231533264E6E5F20BA2AF1826CF9A86E48F83EADE33EE71A70E128E0EC98DB4AEEB15B4C356F696F6E6191D2D4E6F7F519F3467C1410468E1A5A4419FE60234C616875; ntes_kaola_ad=1; vinfo_n_f_l_n3=4ab61f47c1f8548e.1.12.1723723453435.1726922793881.1728568444953; JSESSIONID-WYYY=%2Bxky4XAz6Ov7Gd2o1ZM%2BFANaOSjSMuYi7sWx5FXA96qvNJd0O1%2BKQvP8H7D6DyDCZoYZDVGz4yqgsI2Jpzuu20gQ4VwtlynR5XONP7NVpUbP%5C8zdiddK6jY0pN%2B3l%5C7iAw53pw51WKHluUPJrVEP%2BpoFvCz577jnXXgwO8ur2cHHBi%5CA%3A1728736510172; WM_NI=xPf8D0Ed%2FP1fJkSGjmpiFfb%2FH6voua7ogvutkICYmT2GrIFkCmGzz7SE1RsFgwdwoMrmw8jpqJBkYJLIXwiKzW1Q0e5w0n4x6a01%2F657W0oKQ69sVvz%2FW5efTTHgfaZVdFI%3D; WM_NIKE=9ca17ae2e6ffcda170e2e6eeb4ea5382b6fdb4bb5ea6868fb2c14a968e8fb0cb448b8b8a89b568b0a781a6ec2af0fea7c3b92abc90aad9c73c87bce1b1b46e8ab59da8e967b4b78a87e1258ceaba90f86bf5b1a997f880a9978dbaf060f299beaac56181b3899bf93d919bffb3f24ea5a9ac98ee47b2b3b9d9e97cb3968e8cdc4290979898ec41ba89ffb2b36ff7a9008fb774f6bf00d2ae3ef7e999d1ee4193eaf794d57ebaf199d6e86e988c8888e56b9a8aaca7cc37e2a3',
'pragma': 'no-cache',
'priority': 'u=0, i',
'referer': 'https://music.163.com/',
'sec-ch-ua': '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'iframe',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'same-origin',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
}
def get_main_html(self):
response = requests.get(url=self.url, headers=self.headers)
# print(response.text)
tree = etree.HTML(response.text)
li_list = tree.xpath('//ul[@class="f-hide"]/li')
# print(len(li_list))
for li in li_list:
music_name = li.xpath('./a/text()')[0].replace('/', '')
music_id = li.xpath('./a/@href')[0].split('=')[-1]
# music_id = li.xpath('./a/@href')[0].replace('/song?id=', '')
# print(re.findall('(\d+)', li.xpath('./a/@href')[0]))
# print(music_id, music_name)
self.download(music_id, music_name)
def download(self, music_id, music_name):
music_url = f'https://music.163.com/song/media/outer/url?id={music_id}'
response = requests.get(url=music_url, headers=self.headers)
path = f'./音乐/{music_name}.mp3'
with open(path, 'wb') as f:
f.write(response.content) # 写入音乐的进制格式数据
print(music_name, '下载完成...')
if __name__ == '__main__':
spider = Spider32()
t1 = time.time()
spider.get_main_html()
t2 = time.time()
print('共计耗时:', t2 - t1) # 和网速有直接关系 42.500648498535156
运行结果
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\python.exe C:\Users\Administrator\PycharmProjects\htmlProject\异步爬虫\网易云音乐-单线程.py
打火机 下载完成...
Star Crossing Night (feat. GALI) 下载完成...
空房间(Feat.YOUNG) 下载完成...
I should be with you 下载完成...
如果呢 下载完成...
恋人 下载完成...
偷心 下载完成...
我的明天 下载完成...
听见(The Sound of Us) 下载完成...
想你的夜 下载完成...
另一个我 下载完成...
一点点(为什么晚上总是有星星) 下载完成...
I Love You So x Sunset Park 下载完成...
爱的主打歌 下载完成...
Montagem Nada 下载完成...
Schizophrenic 下载完成...
有一种永恒的烟花叫遗憾 下载完成...
复原 下载完成...
纤维 下载完成...
MONTAGEM XONADA 下载完成...
Electronic ibuprofen 下载完成...
陷阱 (Live) 下载完成...
I Like U Like 下载完成...
Call You Tonight 下载完成...
Trust Issues 下载完成...
空白(Void) 下载完成...
雨天 下载完成...
我的悲伤是水做的 下载完成...
Farewell 下载完成...
A COLD PLAY 下载完成...
好久不见 下载完成...
夏日派对 下载完成...
白百合 下载完成...
Montagem Nada Tropica 下载完成...
7 Years 下载完成...
弥渡山歌 (PHONK) 下载完成...
책방오빠 문학소녀 下载完成...
一城雨 下载完成...
The Way I Still Love You 下载完成...
想念拟人化 下载完成...
i was only temporary 2 u 下载完成...
Death Is No More 下载完成...
Butterflies 下载完成...
倒带 下载完成...
MENTE MÁ 下载完成...
yezzir 下载完成...
嗜好 下载完成...
我想 下载完成...
我的悲伤是水做的 下载完成...
PASSO FUNK 下载完成...
Sugar On My Tongue 下载完成...
In the Name of Love 下载完成...
Radio (Dum-Dum) 下载完成...
曾经是情侣 (Live) 下载完成...
Traceback (most recent call last):
File "C:\Users\Administrator\PycharmProjects\htmlProject\异步爬虫\网易云音乐-单线程.py", line 54, in <module>
spider.get_main_html()
File "C:\Users\Administrator\PycharmProjects\htmlProject\异步爬虫\网易云音乐-单线程.py", line 40, in get_main_html
self.download(music_id, music_name)
File "C:\Users\Administrator\PycharmProjects\htmlProject\异步爬虫\网易云音乐-单线程.py", line 46, in download
with open(path, 'wb') as f:
OSError: [Errno 22] Invalid argument: './音乐/Mr. "Broken Heart".mp3'
进程已结束,退出代码1
下载的音乐如图文件夹所示。
四、网易云音乐-线程池案例
import re, time
import requests
from lxml import etree
from concurrent.futures import ThreadPoolExecutor
class Spider32(object):
def __init__(self):
self.url = 'https://music.163.com/discover/toplist'
self.headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'no-cache',
'cookie': 'NMTID=00Ov5z6wcxuo15eaE1lrTGmnso8gTQAAAGQSghhWw; _iuqxldmzr_=32; _ntes_nnid=72ae531508eda75f71914fb5e12ae20c,1719228981776; _ntes_nuid=72ae531508eda75f71914fb5e12ae20c; WEVNSM=1.0.0; WNMCID=xbndav.1719228983280.01.0; WM_TID=2%2BLp8JtKXtRAVAVBBQbXRWDIUcEsh08j; sDeviceId=YD-THnVH0sNdQFAElQUQFKU6sV2ZfW5bm0V; ntes_utid=tid._.LS30kbK2MCpERhUVVAbCETHMRNQtqGgV._.0; __root_domain_v=.163.com; _qddaz=QD.357823118486883; wyy_uid=e17211a5-f2f8-43e6-8d19-e83a5261a068; locale=zh_CN; _gcl_au=1.1.1341541936.1725278469; __snaker__id=Jyj84HFqnjFZ2vwi; gdxidpyhxdE=bJftabRh0cuuLlJ6w%2FGX1DrZ4kGSerHBx5xjXC9zs125suZGtmc73Eo8kCQJHB6dx%5CItgyjj78AU%2FRRaVfLas0Jq%2B02CjSMKMAE3TDP8A1Cz81VcOJBN%2BzDknk4w4e65GnU%2F4VjzrZsGSTR92nM4Wf2MG%2BWZHSH7%5C9tXJLAiruj8hZ4J%3A1727522571213; __csrf=d6c3783b23ccb9a15fb77fedf952bfb5; MUSIC_U=004A1915C37FDC1AE8FA94FEF771286F709D82894AC6F14E59C4D6D4BFA72C9A407CA22922D3099217AD87E55BA73FFF748ECF1B488426E6E6AEE390734D3963E6E13263F8F8942239A47D75ECE8933BE1C983B4A4811922BEC2BB169FB354919183252E7A51755B0359D7913EACB0969525C38E194E1B90382775D1BBB555684ECBB142C11BF67BA31B06F1A91FBC60F626C0BF3F0DD42B904942D81DDEAAD27E388C1CE000C739D5E66DF0BD8FE1BD290B6616F2EC2A255C55D620B6B40D1B18D87415F11CED2D0CB389A303D5F36A5D26F8EB092565FB2EECDF42A50B8650037B25BAAB45FCC83820CAA0ACB97623866A3270DB341DABD7B32371ACDEEFFB26406688FFBA87B7E032F0F00382788110E69C1B33FD7562A06D5B45F0DB231533264E6E5F20BA2AF1826CF9A86E48F83EADE33EE71A70E128E0EC98DB4AEEB15B4C356F696F6E6191D2D4E6F7F519F3467C1410468E1A5A4419FE60234C616875; ntes_kaola_ad=1; vinfo_n_f_l_n3=4ab61f47c1f8548e.1.12.1723723453435.1726922793881.1728568444953; JSESSIONID-WYYY=%2Bxky4XAz6Ov7Gd2o1ZM%2BFANaOSjSMuYi7sWx5FXA96qvNJd0O1%2BKQvP8H7D6DyDCZoYZDVGz4yqgsI2Jpzuu20gQ4VwtlynR5XONP7NVpUbP%5C8zdiddK6jY0pN%2B3l%5C7iAw53pw51WKHluUPJrVEP%2BpoFvCz577jnXXgwO8ur2cHHBi%5CA%3A1728736510172; WM_NI=xPf8D0Ed%2FP1fJkSGjmpiFfb%2FH6voua7ogvutkICYmT2GrIFkCmGzz7SE1RsFgwdwoMrmw8jpqJBkYJLIXwiKzW1Q0e5w0n4x6a01%2F657W0oKQ69sVvz%2FW5efTTHgfaZVdFI%3D; WM_NIKE=9ca17ae2e6ffcda170e2e6eeb4ea5382b6fdb4bb5ea6868fb2c14a968e8fb0cb448b8b8a89b568b0a781a6ec2af0fea7c3b92abc90aad9c73c87bce1b1b46e8ab59da8e967b4b78a87e1258ceaba90f86bf5b1a997f880a9978dbaf060f299beaac56181b3899bf93d919bffb3f24ea5a9ac98ee47b2b3b9d9e97cb3968e8cdc4290979898ec41ba89ffb2b36ff7a9008fb774f6bf00d2ae3ef7e999d1ee4193eaf794d57ebaf199d6e86e988c8888e56b9a8aaca7cc37e2a3',
'pragma': 'no-cache',
'priority': 'u=0, i',
'referer': 'https://music.163.com/',
'sec-ch-ua': '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'iframe',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'same-origin',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
}
self.lis = []
def get_main_html(self):
response = requests.get(url=self.url, headers=self.headers)
# print(response.text)
tree = etree.HTML(response.text)
li_list = tree.xpath('//ul[@class="f-hide"]/li')
# print(len(li_list))
for li in li_list:
music_name = li.xpath('./a/text()')[0].replace('/', '')
music_id = li.xpath('./a/@href')[0].split('=')[-1]
# music_id = li.xpath('./a/@href')[0].replace('/song?id=', '')
# print(re.findall('(\d+)', li.xpath('./a/@href')[0]))
# print(music_id, music_name)
self.lis.append([music_name, music_id])
def download(self, music_id, music_name):
music_url = f'https://music.163.com/song/media/outer/url?id={music_id}'
response = requests.get(url=music_url, headers=self.headers)
path = f'./音乐/{music_name}.mp3'
with open(path, 'wb') as f:
f.write(response.content) # 写入音乐的进制格式数据
print(music_name, '下载完成...')
def run(self):
# 开启线程池 放入5个线程进行调度 取别名为t
with ThreadPoolExecutor(5) as t:
for i in self.lis:
music_name = i[0]
music_id = i[1]
t.submit(self.download, music_id, music_name) # 第一个参数是任务函数 后面的都是函数需要的参数
if __name__ == '__main__':
spider = Spider32()
spider.get_main_html()
t1 = time.time()
spider.run()
t2 = time.time()
print('共计耗时:', t2 - t1) # 26.87447166442871
# del 键盘键 是删除
# delete
"""
GIL全局解释器锁
"""
运行结果
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\python.exe C:\Users\Administrator\PycharmProjects\htmlProject\异步爬虫\网易云音乐-线程池.py
打火机 下载完成...
恋人 下载完成...
偷心 下载完成...
Star Crossing Night (feat. GALI) 下载完成...
空房间(Feat.YOUNG) 下载完成...
如果呢 下载完成...
想你的夜 下载完成...
我的明天 下载完成...
听见(The Sound of Us) 下载完成...
I should be with you 下载完成...
一点点(为什么晚上总是有星星) 下载完成...
另一个我 下载完成...
I Love You So x Sunset Park 下载完成...
Montagem Nada 下载完成...
有一种永恒的烟花叫遗憾 下载完成...
爱的主打歌 下载完成...
Schizophrenic 下载完成...
陷阱 (Live) 下载完成...
复原 下载完成...
MONTAGEM XONADA 下载完成...
纤维 下载完成...
Call You Tonight 下载完成...
Electronic ibuprofen 下载完成...
雨天 下载完成...
我的悲伤是水做的 下载完成...
空白(Void) 下载完成...
Farewell 下载完成...
Trust Issues 下载完成...
好久不见 下载完成...
A COLD PLAY 下载完成...
7 Years 下载完成...
Montagem Nada Tropica 下载完成...
夏日派对 下载完成...
白百合 下载完成...
책방오빠 문학소녀 下载完成...
I Like U Like 下载完成...
弥渡山歌 (PHONK) 下载完成...
The Way I Still Love You 下载完成...
想念拟人化 下载完成...
i was only temporary 2 u 下载完成...
倒带 下载完成...
Death Is No More 下载完成...
MENTE MÁ 下载完成...
Butterflies 下载完成...
一城雨 下载完成...
yezzir 下载完成...
嗜好 下载完成...
我的悲伤是水做的 下载完成...
PASSO FUNK 下载完成...
我想 下载完成...
Radio (Dum-Dum) 下载完成...
曾经是情侣 (Live) 下载完成...
我怀念的 下载完成...
Die For You 下载完成...
Sugar On My Tongue 下载完成...
指纹 下载完成...
The King(Music) 下载完成...
怪胎 下载完成...
到时说爱我 下载完成...
墙 下载完成...
In the Name of Love 下载完成...
落空 下载完成...
颜如玉 下载完成...
The King 下载完成...
最疯狂的艺术家 下载完成...
No Complaints 下载完成...
想念拟人化 (Live) 下载完成...
沉溺(你让我的心不再结冰) 下载完成...
Wasted (Nightcore) [Bass Boosted] (feat. harmony haven) 下载完成...
我只在乎你 下载完成...
晚安 下载完成...
忧伤碎梦 下载完成...
叹云兮 下载完成...
多亏 下载完成...
Blue 下载完成...
新少女祈祷 下载完成...
雨爱 下载完成...
今晚不想睡 下载完成...
至少还有你 下载完成...
孤单心事 下载完成...
Rock your body 下载完成...
1-800 下载完成...
何事秋风 下载完成...
VAPO NO SETOR 下载完成...
OVERLOAD! 下载完成...
不值得 (Live) 下载完成...
belongwithu 下载完成...
百合恋 下载完成...
春泥 下载完成...
别怕我伤心+听见有人叫你宝贝+爱情少尉+爱如潮水 (Live) 下载完成...
urbanisation 下载完成...
给我一个理由忘记 下载完成...
归零 下载完成...
未来的篇章 下载完成...
讴歌 下载完成...
和你 下载完成...
Montagem Nada(PHONK) 下载完成...
弥渡山歌Phonk House 下载完成...
潮湿记忆 下载完成...
共计耗时: 40.310850381851196
进程已结束,退出代码0
五、协程案例
案例一:协程简单应用
import asyncio, time
async def f1():
await asyncio.sleep(3)
print('我是f1')
async def f2():
await asyncio.sleep(2)
print('我是f2')
async def f3():
await asyncio.sleep(1)
print('我是f3')
async def main():
# 第一步 创建任务列表
tasks = []
# 第二步创建任务 并且将任务添加到任务列表当中
tasks.append(asyncio.create_task(f1()))
tasks.append(asyncio.create_task(f2()))
tasks.append(asyncio.create_task(f3()))
# 第三步 执行任务列表当中的任务
await asyncio.wait(tasks) # await手动挂起
if __name__ == '__main__':
t1 = time.time()
asyncio.run(main())
t2 = time.time()
print('共计耗时:', t2-t1)
运行结果
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\python.exe C:\Users\Administrator\PycharmProjects\htmlProject\异步爬虫\协程.py
我是f3
我是f2
我是f1
共计耗时: 3.0200564861297607
进程已结束,退出代码0
案例二:站长素材-协程应用
import asyncio
import aiohttp # 异步请求模块 pip install aiohttp -i https://pypi.tuna.tsinghua.edu.cn/simple
import aiofiles # 异步请求模块 pip install aiofiles -i https://pypi.tuna.tsinghua.edu.cn/simple
from lxml import etree
import requests
async def page_parse(url):
# response = requests.get(url=url, headers=headers)
async with aiohttp.ClientSession() as s:
async with s.get(url=url, headers=headers) as response: # 等同于这个写法 response = requests.get(url=url, headers=headers) 只不过换成了异步
response_text = await response.text() # 获取文本内容
tree = etree.HTML(response_text)
div_list = tree.xpath('//div[@class="tupian-list com-img-txt-list"]/div')
for div in div_list:
pic_url = 'https:' + div.xpath('./img/@data-original')[0].replace('_s', '')
pic_name = div.xpath('.//a/text()')[0]
sum_list.append([pic_url, pic_name])
async def download(pic_url, pic_name):
async with aiohttp.ClientSession() as s:
async with s.get(url=pic_url, headers=headers) as response:
response_content = await response.content.read() # 获取图片进制格式
path = f'./图片/{pic_name}.jpg'
# with open(path, 'wb') as f: # 同步文件操作写法
# f.write(response_content)
async with aiofiles.open(path, 'wb') as f:
await f.write(response_content)
print(pic_name, '下载完成...')
async def main():
tasks = [] # 第一步 创建任务列表
for index in range(1, 11):
if index == 1:
url = 'https://sc.chinaz.com/tupian/fengjing.html'
else:
url = f'https://sc.chinaz.com/tupian/fengjing_{index}.html'
task = asyncio.create_task(page_parse(url)) # 创建任务
tasks.append(task)
# 执行任务列表当中的任务
await asyncio.wait(tasks)
pic_tasks = []
for i in sum_list:
pic_url = i[0]
pic_name = i[1]
pic_task = asyncio.create_task(download(pic_url, pic_name))
pic_tasks.append(pic_task)
await asyncio.wait(pic_tasks)
if __name__ == '__main__':
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'no-cache',
'cookie': 'qHistory=aHR0cDovL3Nlby5jaGluYXouY29tX1NFT+e7vOWQiOafpeivog==; Hm_lvt_ca96c3507ee04e182fb6d097cb2a1a4c=1719381728; toolbox_urls=www.yingjiesheng.com; Hm_lvt_aecc9715b0f5d5f7f34fba48a3c511d6=1722519419; _clck=1qrcl9s%7C2%7Cfp7%7C0%7C1638; cz_statistics_visitor=997b0585-98a6-0739-d4c1-86aed5743420; Hm_lvt_398913ed58c9e7dfe9695953fb7b6799=1726380570,1728738653; Hm_lpvt_398913ed58c9e7dfe9695953fb7b6799=1728738653; HMACCOUNT=33EE743B756BCDEE',
'pragma': 'no-cache',
'priority': 'u=0, i',
'sec-ch-ua': '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
}
sum_list = []
# asyncio.run(main())
# 如果报错RuntimeError: Event loop is closed
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
# 协程容易死锁 一死锁之后就会连带后面的全部任务都死锁
运行结果
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\python.exe C:\Users\Administrator\PycharmProjects\htmlProject\异步爬虫\站长素材-协程应用.py
日暮黄昏原野稻草人摄影图片 下载完成...
枯枝褪色柳局部摄影图片 下载完成...
唯美冬季树林湖泊雪景摄影图片 下载完成...
唯美日暮黄昏夕阳红摄影图片 下载完成...
乡村田野蓝天白云绿色禾苗图片 下载完成...
夜晚乌云遮挡了月亮图片 下载完成...
深夜海上小岛电闪雷鸣风景图片 下载完成...
烟花焰火晚会摄影图片 下载完成...
蓝色天空巍峨高山山脉风光摄影图片 下载完成...
日暮黄昏天空云彩晚霞摄影图片 下载完成...
蓝色天空沙漠风光摄影图片 下载完成...
圣诞节雪地雪松雪景摄影图片 下载完成...
巍峨高山绿色森林树木摄影图片 下载完成...
冬季森林雪景摄影图片 下载完成...
日暮黄昏远山白色云海图片 下载完成...
日本枫树红枫叶摄影图片 下载完成...
乡村蓝色天空远山矮墙摄影图片 下载完成...
冬季蓝色天空雪地雪松雪景摄影图片 下载完成...
冬季白色雪地雾凇风景图片 下载完成...
海边日出海浪沙滩贝壳风景图片 下载完成...
日暮黄昏山头夕阳晚霞风光摄影图片 下载完成...
黄昏天空厚云层电线摄影图片 下载完成...
黎明时分海上日出风景摄影图片 下载完成...
夏天乡村麦田绿色小麦摄影图片 下载完成...
冬季冰雪密林风景摄影图片 下载完成...
紫色黄昏海岸礁石摄影图片 下载完成...
蓝天白云高原丘陵风景摄影图片 下载完成...
绿色风车发电场风景摄影图片 下载完成...
日暮黄昏海平面夕阳余晖摄影图片 下载完成...
夜晚绚丽烟花夜景摄影图片 下载完成...
蓝色天空卷积云背景图片 下载完成...
冬季蓝天白云积雪树林雪景图片 下载完成...
绿色树林湖泊倒影山水风景图片 下载完成...
冬季白茫茫雪地树林雪景摄影图片 下载完成...
蓝天白云海滩大海风光摄影图片 下载完成...
深秋红色枫树树林风景摄影图片 下载完成...
秋天日暮黄昏枯枝树木图片 下载完成...
一片白茫茫雪山风光摄影图片 下载完成...
夏天午后梯田水稻摄影图片 下载完成...
海平面冉冉升起的日出图片 下载完成...
冬季唯美雪地白雪钟表图片 下载完成...
冬季森林雪景日出摄影图片 下载完成...
夏日午后黄昏草甸夕阳落日余晖摄影图片 下载完成...
日暮黄昏大海晚霞摄影图片 下载完成...
绿色连绵山脉风景摄影图片 下载完成...
阳光穿过绿色树林图片 下载完成...
蓝色天空巍峨连绵山脉风景图片 下载完成...
蓝天白云云雾缭绕山脉风光摄影图片 下载完成...
紫色黄昏山脉之巅摄影图片 下载完成...
夏天绿色麦田麦穗麦浪风景图片 下载完成...
日暮黄昏大海夕阳西下摄影图片 下载完成...
夜空绚丽夺目烟花夜景图片 下载完成...
冬季日暮黄昏雪松雪景摄影图片 下载完成...
清晨雾气草地风景图片 下载完成...
日暮黄昏霞光海岸风景摄影图片 下载完成...
黎明湖泊日出风景摄影图片 下载完成...
黄昏晚霞海上渔船摄影图片 下载完成...
唯美黄昏晚霞大海风光摄影图片 下载完成...
一团团白云蓝色天空摄影图片 下载完成...
蓝色天空巍峨雪域高山摄影图片 下载完成...
冬季原野一片白茫茫雪景摄影图片 下载完成...
唯美冰雪山川湖泊风景摄影图片 下载完成...
绿色足球场人造草摄影图片 下载完成...
冬季雪域高山峡湾摄影图片 下载完成...
日暮黄昏海边沙滩落日余晖摄影图片 下载完成...
紫色黄昏跨海大桥风光摄影图片 下载完成...
夏日午后黄昏唯美海边沙滩风景图片 下载完成...
一望无际大海海边建筑摄影图片 下载完成...
亚洲乡村梯田风景摄影图片 下载完成...
山青水秀自然风光摄影图片 下载完成...
一团团浮云的天空摄影图片 下载完成...
秋天树林秋叶凋零摄影图片 下载完成...
蓝色天空一团团浮云摄影图片 下载完成...
日暮黄昏金色沙漠骆驼摄影图片 下载完成...
秋天氛围感树林风光摄影图片 下载完成...
绿色山峦溪流山水风光摄影图片 下载完成...
一个松果躺在雪地里图片 下载完成...
唯美蓝色海岛大海风光摄影图片 下载完成...
日暮黄昏夕阳美酒摄影图片 下载完成...
日暮黄昏余晖山脉风光摄影图片 下载完成...
雾气朦胧神秘树林风景图片 下载完成...
蓝色天空巍峨高山山脉风景图片 下载完成...
蓝色天空躲在云层后的太阳图片 下载完成...
日暮黄昏湖泊树木剪影图片 下载完成...
世界地球日绿色环保图片素材 下载完成...
春天阳光照耀着树林图片 下载完成...
蓝色天空白色浮云摄影图片 下载完成...
一望无际荒漠风景摄影图片 下载完成...
唯美日暮黄昏夕阳鸿鹄摄影图片 下载完成...
紫色黄昏天空湖泊风景摄影图片 下载完成...
阳光明媚绿树草地春天风景图片 下载完成...
冬季山水湖泊雪景图片 下载完成...
日暮黄昏大海夕阳红摄影图片 下载完成...
唯美黄昏夕阳余晖海边沙滩摄影图片 下载完成...
日暮黄昏大海夕阳海滩图片 下载完成...
蓝色大海浪花沙滩鸟瞰图摄影 下载完成...
日暮黄昏大海夕阳晚霞摄影图片 下载完成...
冬季白色积雪覆盖岩石地貌风光图片 下载完成...
蓝天白云绿色山脉湖泊风光摄影图片 下载完成...
蓝天白云群山环绕摄影图片 下载完成...
绿色海岛蓝色海域风光摄影图片 下载完成...
蓝色天空静谧大海风光摄影图片 下载完成...
唯美自然山水湖泊倒影摄影图片 下载完成...
日暮黄昏红色夕阳红摄影图片 下载完成...
绿色阿尔卑斯山脉风景摄影图片 下载完成...
帕卢斯丘陵草地风光摄影图片 下载完成...
阳光草地绿色森林风景摄影图片 下载完成...
蓝色海水潜水镜摄影图片 下载完成...
唯美山海风光鸟瞰图摄影 下载完成...
巍峨岩石山脉之巅摄影图片 下载完成...
黄昏海边晚霞摄影图片 下载完成...
夏日黄昏湖泊草地风景摄影图片 下载完成...
冬季巍峨雪山风光摄影图片 下载完成...
雾气朦胧郁郁葱葱树林风景图片 下载完成...
日暮黄昏秋日山景图摄影 下载完成...
冬季蓝色天空巍峨雪山风光摄影图片 下载完成...
蓝色天空积雪覆盖的火山口图片 下载完成...
蓝天白云大海沙滩风光摄影图片 下载完成...
日暮黄昏山脉风光摄影图片 下载完成...
秋天枝头红色枫叶摄影图片 下载完成...
南极洲冰山摄影图片 下载完成...
唯美落日余晖海边风景摄影图片 下载完成...
冬季苏格兰海上冰川冰山风景图片 下载完成...
乡村田野绿色未成熟小麦摄影图片 下载完成...
秋天氛围感树林意境摄影图片 下载完成...
一片宽广白色雪地树林风景图片 下载完成...
小妖精谷州立公园风景摄影图片 下载完成...
蓝色天空白云大海帆船摄影图片 下载完成...
日暮黄昏海上落日余晖夕阳摄影图片 下载完成...
秋天红色枫树林风景摄影图片 下载完成...
日本宝塔树果实局部摄影图片 下载完成...
冬季氛围感树林意境摄影图片 下载完成...
蓝天白云巍峨雪山山脉图片 下载完成...
冬季雪山村庄平安夜圣诞树雪景图片 下载完成...
唯美冬季白色雪地雪屋雪景图片 下载完成...
日暮黄昏海边沙滩风光摄影图片 下载完成...
蓝色天空白色云团摄影图片 下载完成...
蓝色天空棕榈树摄影图片 下载完成...
日暮黄昏冰山湖泊帆船风光摄影图片 下载完成...
日暮黄昏静谧远山湖泊风光摄影图片 下载完成...
蓝色天空白云环岛海边风景图片 下载完成...
乌云密布电闪雷鸣气象景观图片 下载完成...
云雾缭绕阿尔卑斯山脉摄影图片 下载完成...
白色卷积云蓝色天空背景图片 下载完成...
挪威海峡风景摄影图片 下载完成...
冬季山脉树林积雪覆盖图片 下载完成...
唯美黄昏云大海摄影图片 下载完成...
晴空万里白云朵朵天空背景图片 下载完成...
唯美峡谷绿色树林风景图片 下载完成...
黄昏大海日落帆船剪影图片 下载完成...
黄昏夕阳红湖泊风景摄影图片 下载完成...
日暮黄昏远山唯美夕阳红图片 下载完成...
天空白云朵朵海边沙滩风光摄影图片 下载完成...
夏日蓝色小清新海边沙滩鸟瞰图摄影 下载完成...
冬天雪树银花漫天飞雪图片 下载完成...
绿色原野蓝色天空黄色热气球图片 下载完成...
黄昏天空霞光云团摄影图片 下载完成...
蓝色天空白云背景摄影图片 下载完成...
夏日蓝色天空大海沙滩风景摄影图片 下载完成...
冬季巍峨高山雪地树木摄影图片 下载完成...
冬季日暮黄昏霞光摄影图片 下载完成...
日暮黄昏湖泊天空火烧云图片 下载完成...
郁郁葱葱生态林树林摄影图片 下载完成...
蓝天白云绿色草地荷兰风车风景图片 下载完成...
雾气朦胧自然森林风光摄影图片 下载完成...
白云岩山水风景摄影图片 下载完成...
黄昏度假海岸人物剪影摄影图片 下载完成...
火山爆发熔浆飞溅摄影图片 下载完成...
蓝色天空卷积云飞机尾翼飞行痕迹摄影图片 下载完成...
火焰喷发的火山摄影图片 下载完成...
蓝色天空唯美雾凇风景摄影图片 下载完成...
贫瘠的戈壁沙漠峡谷摄影图片 下载完成...
蓝天白云绿色庄园草地风景图片 下载完成...
春天蓝天白云原野草地风景摄影图片 下载完成...
黄昏落日江边小镇建筑摄影图片 下载完成...
绿色树木草地春意盎然风景摄影图片 下载完成...
黄昏残阳海上轮船剪影图片 下载完成...
日暮黄昏大海夕阳落日余晖图片 下载完成...
春天绿色树木草地自然风光摄影图片 下载完成...
日暮黄昏港口船舶晚霞摄影图片 下载完成...
日暮黄昏天空火烧云图片 下载完成...
秋天蓝色天空树木草地风景摄影图片 下载完成...
日暮黄昏湖泊雾气朦胧意境摄影图片 下载完成...
唯美大海夕阳落日余晖美景摄影图片 下载完成...
日暮黄昏湖泊夕阳余晖摄影图片 下载完成...
黄昏海平面落日余晖夕阳摄影图片 下载完成...
日暮黄昏海平面上徐徐落下的夕阳图片 下载完成...
蓝色天空白云水波荡漾大海风景图片 下载完成...
绿色茂密树林鸟瞰图摄影 下载完成...
巍峨雪域高山山脉风景摄影图片 下载完成...
蓝天白云绿色草地圆柱形草堆图片 下载完成...
日暮黄昏湖泊火烧云风光摄影图片 下载完成...
冬季乌云密布建筑雪景摄影图片 下载完成...
冬天白色雪地房屋树木雪景图片 下载完成...
蓝色星空湖边树木倒影图片 下载完成...
巍峨峡谷山脉湖泊山水风景图片 下载完成...
雾气朦胧绿色山坡丘陵风景图片 下载完成...
唯美天空卷积云摄影图片 下载完成...
冬季雾凇结冰的湖泊雪景图片 下载完成...
日本富士山山水风光摄影图片 下载完成...
日暮黄昏唯美海岸花草美景摄影图片 下载完成...
春意盎然绿色草地树木风景摄影图片 下载完成...
冬季雪地雪人雪松雪景图片 下载完成...
唯美黄昏夕阳海上帆船摄影图片 下载完成...
阿尔卑斯山脉黑白风格摄影图片 下载完成...
郁郁葱葱树林小路风光摄影图片 下载完成...
秋冬萧条山脉湖泊山水风光摄影图片 下载完成...
日暮黄昏远山山脉夕阳西下图片 下载完成...
秋季萧条树林山水自然风景图片 下载完成...
唯美黄昏海边落日余晖船舶摄影图片 下载完成...
春天绿色草地阿尔卑斯山脉摄影图片 下载完成...
日暮黄昏巍峨阿尔卑斯山脉图片 下载完成...
蓝色大海海边沙滩鸟瞰图摄影 下载完成...
云雾缭绕山脉风光摄影图片 下载完成...
日暮黄昏山海风光摄影图片 下载完成...
紫色黄昏湖泊风景摄影图片 下载完成...
雾气朦胧山脉风光摄影图片 下载完成...
日暮黄昏高耸山脉风光摄影图片 下载完成...
秋天红色森林树木摄影图片 下载完成...
瑞士蓝天白云雪域高山图片 下载完成...
黄昏夕阳余晖美女写真摄影图片 下载完成...
蓝色天空绿色树林草地风景摄影图片 下载完成...
曲径通幽树林风光摄影图片 下载完成...
蓝天白云绿色山脉风光摄影图片 下载完成...
冬季黄昏唯美城市雪景摄影图片 下载完成...
蓝天白云巍峨山水湖泊风光摄影图片 下载完成...
蓝色天空远山海边风景摄影图片 下载完成...
日暮黄昏层层山脉晚霞风光摄影图片 下载完成...
日暮黄昏海边沙滩手机拍摄夕阳图片 下载完成...
蔚蓝色天空白色卷积云摄影图片 下载完成...
冬季积雪覆盖雪松树林摄影图片 下载完成...
蓝色天空白色卷积云摄影图片 下载完成...
日暮黄昏巍峨雪山山脉风光摄影图片 下载完成...
蓝天卷积云山水湖泊风景摄影图片 下载完成...
土路蜿蜒地通向一座山峰摄影图片 下载完成...
意大利山间小屋松林高山摄影图片 下载完成...
冬季河流萧条枯树摄影图片 下载完成...
冬季巍峨白色雪山风光摄影图片 下载完成...
春天广阔的草原接连天地摄影图片 下载完成...
奥地利雪山山脉摄影图片 下载完成...
日暮黄昏唯美海边沙滩风景摄影图片 下载完成...
南极洲冰冷雪域山脉山川摄影图片 下载完成...
巍峨白色冰雪山脉风光摄影图片 下载完成...
冬季萧条冰雪世界雾凇风光摄影图片 下载完成...
意大利科尔蒂纳丹佩佐山脉摄影图片 下载完成...
绿色山丘草地风光摄影图片 下载完成...
雾气朦胧山野房屋树林风景摄影图片 下载完成...
蓝色波涛汹涌大海风景摄影图片 下载完成...
飘落在半空中的枫叶图片 下载完成...
蓝色天空白色卷积云绿色山脉摄影图片 下载完成...
日暮黄昏山脉十字架石碑摄影图片 下载完成...
喀斯特山脉风光摄影图片 下载完成...
绿色草地野生驴吃草图片 下载完成...
麦田绿色小麦庄稼植物摄影图片 下载完成...
海上小岛可再生能源风车摄影图片 下载完成...
春天冰雪融化山脉湖泊风光摄影图片 下载完成...
郁郁葱葱绿色山脉风光图片 下载完成...
日暮黄昏海边沙滩晚霞摄影图片 下载完成...
春天蓝天白云草地树木风景摄影图片 下载完成...
冬季木栈道雾凇雪景图片 下载完成...
春天户外绿油油的草地摄影图片 下载完成...
埃尔古纳度假屋黄昏美景摄影图片 下载完成...
阳光照耀下的金色沙漠图片 下载完成...
蔚蓝色天空白色卷积云摄影图片 下载完成...
美丽的大自然风景摄影图片 下载完成...
唯美秋天红色枫树林风景摄影图片 下载完成...
绿色稻田未成熟的谷物麦穗图片 下载完成...
夏日蓝色大海沙滩海边风景鸟瞰图摄影 下载完成...
冬季雪花纷飞可爱雪人雪景图片 下载完成...
一片广阔的大山景图片 下载完成...
一片高大的山林图片 下载完成...
日出高照远山山脉风光摄影图片 下载完成...
唯美海上夕阳霞光摄影图片 下载完成...
蓝天白云草地保护地球环保设计图片 下载完成...
日暮黄昏日落晚霞摄影图片 下载完成...
蓝天白云巍峨高山湖泊山脉摄影图片 下载完成...
唯美黄昏大海夕阳晚霞摄影图片 下载完成...
春天绿色山丘草地风景摄影图片 下载完成...
黄昏巍峨高山之巅摄影图片 下载完成...
夏日海边沙滩贝壳海星摄影图片 下载完成...
绿色茂密树林鸟瞰图摄影 下载完成...
黄昏雾气朦胧山野风光图片 下载完成...
唯美黄昏渔人码头摄影图片 下载完成...
冬季树林雾凇雪景摄影图片 下载完成...
蓝色天空白色云海雪山山坡摄影图片 下载完成...
日暮黄昏冬季树林雪景图片 下载完成...
唯美雪域高山雪景摄影图片 下载完成...
秋天氛围感公园风景摄影图片 下载完成...
夏日蓝色海边沙滩热带椰子树图片 下载完成...
蓝色天空海边海螺摄影图片 下载完成...
冬季巍峨雪域高山黑白摄影图片 下载完成...
冬季蓝色天空雪松雪地雪景摄图片 下载完成...
冬季雪地白色雪花漫天飞舞图片 下载完成...
黄昏唯美云彩霞光山脉风光摄影图片 下载完成...
春天绿色树木阳光草地风景摄影图片 下载完成...
绿色乡村麦穗植物摄影图片 下载完成...
冬季唯美雾凇树木雪景图片 下载完成...
唯美海边黄昏霞光美景摄影图片 下载完成...
意大利唯美峡谷山水游船木屋摄影图片 下载完成...
山之巅上的直升机摄影图片 下载完成...
白色浮云朵朵蓝色天空摄影图片 下载完成...
冬季日暮黄昏唯美雪景建筑图片 下载完成...
乡村龙脊梯田风景摄影图片 下载完成...
瑞士青山绿水山水风光摄影图片 下载完成...
黄昏海边度假椰子树剪影摄影图片 下载完成...
冬季白茫茫雪地雪屋雪山雪景摄影图片 下载完成...
冬季雪地积雪覆盖的树木图片 下载完成...
一座座山峰高耸入云摄影图片 下载完成...
秋天红色枫叶局部摄影图片 下载完成...
冬季冰雪世界喜马拉雅山脉风光摄影图片 下载完成...
秋意阑珊唯美树林风景摄影图片 下载完成...
绿色森林树木野草小路摄影图片 下载完成...
海上大浪滔天摄影图片 下载完成...
蓝色天空户外背包旅行登山摄影图片 下载完成...
日暮黄昏萧条山脉风光摄影图片 下载完成...
冬天白色雪地雪山雪景摄影图片 下载完成...
金色秋天山水湖泊树林风光摄影图片 下载完成...
紫色黄昏唯美湖泊风景图片 下载完成...
紫色黄昏湖泊草地风景摄影图片 下载完成...
绿草如茵山野风景摄影图片 下载完成...
山野户外山水风景图片 下载完成...
贫瘠山脉风光黑白摄影图片 下载完成...
秋天手持一片枫叶图片 下载完成...
乡村田野草地风景摄影图片 下载完成...
黄石国家公园风景摄影图片 下载完成...
落叶松新芽松果摄影图片 下载完成...
地质石林岩石山水自然风光摄影图片 下载完成...
天空飞机尾翼飞过痕迹摄影图片 下载完成...
春天蓝色天空绿色稻田风光摄影图片 下载完成...
蓝色天空巍峨雪山山脉摄影图片 下载完成...
日暮黄昏大海海岸晚霞风光摄影图片 下载完成...
蓝色天空白色云团背景摄影图片 下载完成...
紫色黄昏海边防洪石墩摄影图片 下载完成...
美丽乡村田园梯田风光摄影图片 下载完成...
夏日唯美小清新海边沙滩度假风景摄影图片 下载完成...
日暮黄昏唯美湖泊雪景摄影图片 下载完成...
日暮黄昏海滨欧式建筑剪影图片 下载完成...
黄昏云彩晚霞天空热气球摄影图片 下载完成...
贫瘠石头山脉风光摄影图片 下载完成...
海岛白色灯塔房屋风光摄影图片 下载完成...
冬季唯美雾凇雪景摄影图片 下载完成...
夏日唯美蓝色大海海岛风景图片 下载完成...
日暮黄昏海滩夕阳脚印摄影图片 下载完成...
粉色樱花林远山山脉摄影图片 下载完成...
连绵起伏高山风景摄影图片 下载完成...
意大利北部喀斯特山脉冬季风光摄影图片 下载完成...
蓝天白云唯美海岛风光摄影图片 下载完成...
蓝色天空山水湖泊风景摄影图片 下载完成...
河边绿色树木树叶摄影图片 下载完成...
海边海滩木栈道风光摄影图片 下载完成...
云雾缭绕青山连绵风景摄影图片 下载完成...
蓝天白云绿色农场草地风车房摄影图片 下载完成...
冬季白色雪地雪松树林风景摄影图片 下载完成...
夏日白色沙滩蓝色大海摄影图片 下载完成...
冬季雪域高山山脉风光摄影图片 下载完成...
秋天氛围感树林风光摄影图片 下载完成...
蓝色大海海边沙滩冲浪者摄影图片 下载完成...
蓝色天空白云光秃秃石头山图片 下载完成...
唯美黄昏火烧云湖泊风景图片 下载完成...
冬季雪地白色狗狗浪漫雪景图片 下载完成...
秋天枯黄草原木栅栏风景图片 下载完成...
一片山河美景摄影图片 下载完成...
冬季攀登雪山之巅摄影图片 下载完成...
阿尔卑斯山湖泊山水风景图片 下载完成...
阳光照耀下的新生树苗摄影图片 下载完成...
一望无际海上日出风光摄影图片 下载完成...
唯美黄昏大海晚霞霞光摄影图片 下载完成...
清晨平静海平面日出风景摄影图片 下载完成...
日暮黄昏大海波光粼粼夕阳美景图片 下载完成...
绿色麦田小麦麦穗摄影图片 下载完成...
冬季夜晚街头电车雪景摄影图片 下载完成...
唯美秋天氛围感枫叶摄影图片 下载完成...
唯美黄昏湖泊火烧云风景图片 下载完成...
夏日唯美蓝色海边椰子树风景图片 下载完成...
日暮黄昏夕阳下欢呼雀跃人物摄影图片 下载完成...
唯美山头日出山水风景摄影图片 下载完成...
唯美海浪沙滩海边摄影图片 下载完成...
蓝色大海沙滩海浪唯美摄影图片 下载完成...
绿色树林阳光照耀着木桩图片 下载完成...
蓝色天空山峦湖泊风光摄影图片 下载完成...
绿色连绵山脉远山风光摄影图片 下载完成...
冬季唯美极光雪地雪松雪景图片 下载完成...
秋天氛围感森林雾气电缆车风景图片 下载完成...
夏日蓝色天空卷积云海边图片 下载完成...
冬季静谧雪山湖泊山水风景图片 下载完成...
绿色清新阳光树林风景摄影图片 下载完成...
冬季萧条参天古树枯枝摄影图片 下载完成...
光秃秃的山脉湖泊山水风光摄影图片 下载完成...
唯美日暮黄昏湖边孤独树木剪影图片 下载完成...
小清新海边沙滩海浪浪花摄影图片 下载完成...
唯美日落黄昏夕阳余晖湖泊摄影图片 下载完成...
黄昏海岸夕阳风光摄影图片 下载完成...
蓝天大海沙滩红色灯塔摄影图片 下载完成...
初冬山水湖泊风景摄影图片 下载完成...
夏日浪漫海岛风景摄影图片 下载完成...
紫色黄昏秋季山水风景摄影图片 下载完成...
喀斯特峡谷房屋建筑摄影图片 下载完成...
乡村田园麦田风景摄影图片 下载完成...
绿色原野山川山脉风光摄影图片 下载完成...
秋天金色树林落叶满地摄影图片 下载完成...
进程已结束,退出代码0
下载好的图片如图所示。
六、线程和协程的区别
(1)进程是资源分配的最小单位
(2)线程是资源调度的最小单位

