Master Huang
Master Huang

Reputation: 193

How to capture the request url of mp3 file on the audiobook website?

website:

https://www.ting22.com/ting/659-2.html

I'd like to get some audiobooks from the website above. In other words, I want to download the MP3 files of the audiobook from 659-2.html to 659-1724.html.

By using F12 tools, In [Network]->[Media], I can see the Request URL of MP3 file, But I don't know how to get the URL using a script.

Here are some specs of what I'm using:

Update:

For example, by using F12 tool, I can see the file's url is "http://audio.xmcdn.com/group58/M03/8D/07/wKgLc1zNaabhA__WAEJyyPUT5k4509.mp3"

But I don't know how to get the URL of MP3 file in code ? Rather than how to download the file.

which library should I use?

Thank you.

Upvotes: 0

Views: 1047

Answers (1)

Kostas Charitidis
Kostas Charitidis

Reputation: 3103

UPDATE

Well that would be a bit more complicated because requests packages won't return the .mp3 source, so you need to use Selenium. Here is a tested solution:

from selenium import webdriver  # pip install selenium
import urllib3
import shutil
import os


if not os.path.exists(os.getcwd()+'/mp3_folder'):
    os.mkdir(os.getcwd()+'/mp3_folder')


def downloadFile(url=None):
    filename = url.split('/')[-1]
    c = urllib3.PoolManager()
    with c.request('GET', url, preload_content=False) as resp, open('mp3_folder/'+filename, 'wb') as out_file:
        shutil.copyfileobj(resp, out_file)
    resp.release_conn()


driver = webdriver.Chrome('chromedriver.exe')  # download chromedriver from here and place it near the script: https://chromedriver.storage.googleapis.com/72.0.3626.7/chromedriver_win32.zip
for i in range(2, 1725):
    try:
        driver.get('https://www.ting22.com/ting/659-%s.html' % i)
        src = driver.find_element_by_id('mySource').get_attribute('src')
        downloadFile(src)
        print(src)
    except Exception as exc:
        print(exc)

Upvotes: 1

Related Questions