实习

入职第二天

用爬虫爬取网站音频数据

昨天是 入职第一天,晚上要下载数据,又玩了一会,有点累,没有写总结,今天上班的时候摸摸鱼,补上。

现在小公司都不带实习生的吗,上来就让干活。。。。有个声音的项目比较紧,所以第一天的任务是给我一个网站,搜集建筑工地的各种声音。幸好之前学过一些爬虫,用爬虫技术批量下载了建筑施工的一批数据,大约有14000多条,4.5G左右。

分享一下自己是如何做的:

用了最原始的爬虫技术:
# coding : utf-8
import socket
import re
import os
import ssl
from urllib.request import urlopen, Request, urlretrieve

socket.setdefaulttimeout(100)
ssl._create_default_https_context = ssl._create_unverified_context
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}


def create_file(key_words):
    if os.path.isdir(key_words):
        pass
    else:
        os.mkdir(key_words)


def getHtml(url):
    page = urlopen(url)
    html = page.read().decode('utf-8')
    return html


def getPage(html):
    pat = '''title="Last Page">(.*?)</a></li><p class="number_of_results">'''
    page_list = re.compile(pat).findall(html)
    return int(page_list[0])


def getVoice(html):
    x = 0
    ls = []
    pat = '''<a class="mp3_file" href="(.*?)" title="mp3 file">'''
    voicelist = re.compile(pat).findall(html)
    for voiceurl in voicelist:
        x += 1
        voiceurl = 'https://freesound.org' + voiceurl
        ls.append(voiceurl)
    return ls


def downloadvoice(url_list, key_words, count):
    x = count
    for i in url_list:
        try:
            urlretrieve(i, key_words+'/%s.mp3' % x)
            print("音频%s下载成功" % x)
            x += 1
        except:
            print("音频%s下载失败" % x)
            x += 1


if __name__ == '__main__':
    ls = []
    key_words = "mechanical_engine"
    create_file(key_words)
    html = getHtml('https://freesound.org/search/?q=' + key_words + '&page=1')
    page_number = getPage(html)
    print(page_number)
    for i in range(1, page_number):
        html = getHtml('https://freesound.org/search/?q=' + key_words + '&page=' + str(i))
        #page_number = getPage(html)
        #ls = getVoice(html, page_number)
        ls = getVoice(html)
        #print(ls)
        downloadvoice(ls, key_words, i * 15)

昨天用自己电脑跑了一夜,发现有重复的。。。无语,自己太菜了。

今天只能整改了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容