多线程下载英语真题资料pdf

1.一开始想手动下载,但是觉得那真叫一个慢,后来就用程序写了
2.他那个pdf文件名是31位的数字,我具体不知道怎么生成的,所以我用的selenium
上代码,代码可以直接用但要改一个文件路径:
劝你们不要用多线程,我下了10个文件就出问题了。并且一下子下载某一类,不是混在一起不好找。

import concurrent.futures
from pprint import pprint
import time
import parsel
import requests
from selenium import webdriver
# 网址,不错的网站,免费,真的很好
url = 'https://zhenti.burningvocabulary.com'
# 获取浏览器对象,路径写自己的,需要安装东西,我有一篇文章已经写了需要安装的软件
driver = webdriver.Edge('C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe')
# 得到形如/cet4/....
get_all_list = []
# 这里可以根据自己情况下载,四级六级考研,或者专八
englist = ['cet4','cet6','kaoyan']
time1 = int(time.time())# 获取相应的地址
def get_url_list(ename):url = 'https://zhenti.burningvocabulary.com/'+enameresponse = requests.get(url)selector = parsel.Selector(response.text)e_list = selector.css('.mt-5 .row .col-12 .link-primary::attr(href)').getall()return e_list# pprint(get_url_list('cet4'))# 获取所有的绝对网络地址
def get_all_english_list(enlist):for addr in enlist:ur = ""ur = url + addrget_all_list.append(ur)def chuan_value():for value in englist:get_all_english_list(get_url_list(value))def save_pdf():chuan_value()for u in get_all_list:driver.get(u)time.sleep(3)# 点击下载按钮driver.find_element_by_css_selector('#download').click()time.sleep(10)def main():save_pdf()if __name__ == '__main__':# 创建线程池,因为我电脑性能不是很好,就只创建了3个exe = concurrent.futures.ThreadPoolExecutor(max_workers=3)exe.submit(main())# 关闭线程池exe.shutdown()# main()pprint(get_all_list)print((int(time.time()) - time1))

后期应该会把相应听力音频及答案下载代码发布,看有没有时间。这段时间有点忙。