Baidu Encyclopedia

driver.get("https://baike.baidu.com/item/%E8%87%AA%E7%9B%B8%E5%85%B3%E5%87%BD%E6%95%B0/9851266")
bs = BeautifulSoup(driver.page_source)

tags = bs.find('div',{
    
    'class':'basic-info cmn-clearfix'})
tags = list(zip(
    [dt.text.replace('\xa0','') for dt in items.find_all('dt')],
    [dd.text.replace('\n','') for dd in items.find_all('dd')]
))
print(tags)
'''
[('中文名', '自相关函数'),
 ('外文名', 'Autocorrelation Function'),
 ('属性', '函数'),
 ('相关', '统计学'),
 ('等同于', '自协方差'),
 ('应用学科', '数学')]
'''

Text content

paras = bs.find_all('div',{
    
    'class':'para','label-module':'para'})
content = '\n'.join([p.text.replace('\n','') for p in paras])
print(content)
'''
自相关函数(Autocorrelation Function)在不同的领域,定义不完全等效。在某些领域,自相关函数等同于自协方差(autocovariance)。
自相关(英语:Autocorrelation),也叫序列相关,[1] 是一个信号于其自身在不同时间点的互相关。非正式地来说,它就是两次观察之间的相似度对它们之间的时间差的函数。它是找出重复模式(如被噪声掩盖的周期信号),或识别隐含在信号谐波频率中消失的基频的数学工具。它常用于信号处理中,用来分析函数或一系列值,如时域信号。
在统计学上,自相关被定义为,两个随机过程中不同时刻的数值之间的皮尔森相关(Pearson correlation).

如果X为广义平稳过程,则的期望以及标准差不随时间t变化,则自相关函数可以表示为时间延迟的函数,如下

信号处理
,
其中“*”是卷积算符,为取共轭。
同一时间函数在瞬时t和t+a的两个值相乘积的平均值作为延迟时间t的函数,它是信号与延迟后信号之间相似性的度量。延迟时间为零时,则成为信号的均方值,此时它的值最大。[2] 
简而言之,自相关函数是表达信号和它的多径信号的相似程度。一个信号经过类似于反射、折射等其它情况的延时后的副本信号与原信号的相似程度。
以下以一维自相关函数为例说明其性质,多维的情况可方便地从一维情况推广得到。
对称性:从定义显然可以看出R(i) = R(−i)。连续型自相关函数为偶函数。
当f为实函数时,有:

当f是复函数时,该自相关函数是厄米函数,满足:

其中星号表示共轭。
连续型实自相关函数的峰值在原点取得,即对于任何延时 τ,均有 |R_f(\tau)| \leq R_f(0)。该结论可直接有柯西-施瓦兹不等式得到。离散型自相关函数亦有此结论。[2] 
周期函数的自相关函数是具有与原函数相同周期的函数。
两个相互无关的函数(即对于所有 τ,两函数的互相关均为0)之和的自相关函数等于各自自相关函数之和。
由于自相关函数是一种特殊的互相关函数,所以它具有后者的所有性质。
连续时间白噪声信号的自相关函数是一个δ函数,在除 τ = 0 之外的所有点均为0。
维纳-辛钦定理(Wiener–Khinchin theorem)表明,自相关函数和功率谱密度函数是一对傅里叶变换对:


实值、对称的自相关函数具有实对称的变换函数,因此此时维纳-辛钦定理中的复指数项可以写成如下的余弦形式:


白噪声的自相关函数为δ函数:

具有罗伦兹功率谱的色噪声的自相关函数为:
<Q(t)Q(t')>= 
信号处理中,自相关可以提供关于重复事件的信息,例如音乐节拍(例如,确定节奏)或脉冲星的频率(虽然它不能告诉我们节拍的位置)。另外,它也可以用来估计乐音的音高。
'''

Download png image

import requests
from bs4 import BeautifulSoup
import threading
import requests
from lxml import etree
from urllib import request
import os
import re
from queue import Queue


global num_thread
num_thread = 0

class Consumer(threading.Thread):
    headers = {
    
    
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'
    }

    def __init__(self, img_queue, *args,**kwargs):
        super(Consumer, self).__init__(*args,**kwargs)
        global num_thread
        self.img_queue = img_queue
        self.id = num_thread
        num_thread += 1
 
    def run(self):
        while True:
            if self.img_queue.empty():
                print('thread \t{}\t bye'.format(self.id))
                break
            print('剩余:', img_queue.qsize())
            url = self.img_queue.get()
            urllib.request.urlretrieve(png, png.split('/')[-1])

            
import urllib

pngs = re.findall('https\:\/\/bkimg.*?\.png',str(bs))

N = len(pngs)
N_threads = N
img_queue = Queue(N)

for u in pngs:
    img_queue.put(u)

for x in range(N_threads):
    t = Consumer(img_queue)
    t.start()
    t.join()
    
print('Download')

Guess you like

Origin blog.csdn.net/itnerd/article/details/108720103