
    j+                         d Z ddlZddddddd	d
ddgddgd
ddddddddddgddgd
dZdZd Zd Zd  Zd! Zd" Zd# Z	d$ Z
d% Zd& Zd' Zeeee
ed(ee	eeed(dZd) Zy)*u   站点配置：UK / DE 各自独立的浏览器参数与清洗规则。
调用方：browser.py 按 site 键启动对应持久浏览器；extract.py 按 site 键选清洗器。
    Nz.amazon.co.ukzamazon.co.ukOX12JDGBP   £zen-GBzEurope/Londonz/home/user/profiles/UKzin stock	availablezcurrently unavailablezout of stock)
domaintldpostcodecurrencycurrency_symbollocaletimezoneprofile_dirkw_in_stockkw_out_of_stockz
.amazon.dez	amazon.de10115EURu   €zde-DEzEurope/Berlinz/home/user/profiles/DEz	auf lager	lieferbaru   derzeit nicht verfügbarznicht auf lager)UKDEzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36c                     | sy t        j                  ddt        |             } | j                  dd      } t	        t        |       d      S # t        $ r Y y w xY w)N	[^\d,.\-] ,   )resubstrreplaceroundfloat	Exceptionss    /home/user/monitor/sites.pyclean_number_ukr%   '   sK    T
|RQ(A			#rAeAh"	"!T!s   A 	AAc                 \   | sy t        j                  ddt        |             } d| v r'd| v r#| j                  dd      j                  dd      } n;t        j                  d|       r| j                  dd      } n| j                  dd      } t        t        |       d      S # t        $ r Y y w xY w)Nr   r   r   .z\d{1,3}(\.\d{3})+r   )r   r   r   r   	fullmatchr   r    r!   r"   s    r$   clean_number_der)   .   s    T
|RQ(A
axC1HIIc2&&sC0	*A	.IIc2IIc3eAh"	"!T!s   
B 	B+*B+c           	      Z    | syt        t        j                  ddt        |                   S )u   '£16.99' -> 16.99Nu   [£$]r   )r%   r   r   r   r"   s    r$   clean_price_ukr+   :   #    T266(BA788    c           	      Z    | syt        t        j                  ddt        |                   S )u$   '25,46€' / '1.234,56 €' -> floatNu   [€]r   )r)   r   r   r   r"   s    r$   clean_price_der/   ?   r,   r-   c                     t        j                  d| xs d      }|rt        |j                  d            S t	        |       S )z'4.4 out of 5 stars' -> 4.4z([\d.]+)\s+out ofr      )r   searchr    groupr%   r#   ms     r$   clean_rating_ukr6   D   s6    
		&R0A !59q'99r-   c                     t        j                  d| xs d      }|rt        |j                  d            S t        |       S )z'4,4 von 5 Sternen' -> 4.4z([\d,]+)\s+vonr   r1   r   r2   r)   r3   r4   s     r$   clean_rating_der9   I   s6    
		#QW"-A*+?1771:&C1CCr-   c                 r    t        j                  d| xs d      }|rt        |j                  d            S dS )z'#2 in ...' / '2 in ...' -> 2z	#([\d,]+)r   r1   N)r   r2   r%   r3   r4   s     r$   clean_bsr_ukr;   N   s0    
		,R(A*+?1771:&55r-   c                 r    t        j                  d| xs d      }|rt        |j                  d            S dS )z'Nr. 1.754 in ...' -> 1754zNr\.?\s*([\d.,]+)r   r1   Nr8   r4   s     r$   clean_bsr_der=   S   s1    
		&R0A*+?1771:&55r-   c                     t        |       S )z'(23,742)' -> 23742)r%   r"   s    r$   clean_count_ukr?   X       1r-   c                     t        |       S )z'(24.354)' -> 24354)r)   r"   s    r$   clean_count_derB   \   r@   r-   )priceratingcountbsrnumberc                     i }dD ]V  }| d}t        j                  ||xs dt         j                        }|s4t        |    d   |j	                  d            ||<   X |xs dS )z6'5 star 70% 4 star 14% ...' -> {'5': 70, '4': 14, ...})54321z(\s*(?:star|stern|sterne)\s+([\d.,]+)\s*%r   rG   r1   N)r   r2   ICLEANERSr3   )siterawoutstarpatr5   s         r$   clean_histogramrU   q   sk    
C) =?@IIc39"bdd+ x0<CI	=
 ;$r-   )__doc__r   SITE_CONFIGSUAr%   r)   r+   r/   r6   r9   r;   r=   r?   rB   rO   rU    r-   r$   <module>rZ      s    
 "#/"K03^D  #/#[168IJ6 w
"
"9
9
:
D
6
6
  !!  !!"r-   