o
    þ[qiC.  ã                   @   sX   d dl Z d dlZd dlZd dlZd dlmZ ej d¡ d dlm	Z	 G dd„ de	ƒZ	dS )é    N)ÚBeautifulSoupz..)ÚSpiderc                   @   sx   e Zd Zdd„ Zddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zddd„Zdd„ Zdd„ ZdS ) r   c                 C   ó   dS )Nu   åŒ…å­æ¼«ç”»© ©Úselfr   r   õ,   /storage/emulated/0/lz/py/sy/åŒ…å­æ¼«ç”».pyÚgetName   ó   zSpider.getNameÚ c                 C   ó   d S ©Nr   )r   Úextendr   r   r   Úinit   r
   zSpider.initc                 C   r   ©NFr   )r   Úurlr   r   r   ÚisVideoFormat   r
   zSpider.isVideoFormatc                 C   r   r   r   r   r   r   r   ÚmanualVideoCheck   r
   zSpider.manualVideoCheckc                 C   r   r   r   r   r   r   r   Údestroy   r
   zSpider.destroyc                 C   s
   dddœS )NzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36zhttps://cn.bzmanga.com/)z
User-AgentÚRefererr   r   r   r   r   Ú	getHeader   s   þzSpider.getHeaderc                 C   s,  dddœdddœdddœdd	dœd
ddœg}i }dddddœdddœdddœgdœg|d< dddddœdddœgdœg|d	< dddœdddœdddœdd dœd!d"dœd#d$dœd%d&dœd'd(dœd)d*dœd+d,dœd-d.dœd/d0dœd1d2dœd3d4dœd5d6dœd7d8dœd9d:dœd;d<dœg}dd=|dœg|d< ||d>œS )?Nu   æœ€æ–°ä¸Šæž¶Únew)Ú	type_nameÚtype_idu   å…¨éƒ¨æ¼«ç”»Úallu   åœ°åŒºÚregionu   è¿›åº¦Ústatusu   é¢˜æÚtypeÚvalu   å›½æ¼«Úcn)ÚnÚvu   æ—¥æœ¬Zjpu   æ¬§ç¾ŽÚen)ÚkeyÚnameÚvalueu	   è¿žè½½ä¸­Úserialu	   å·²å®Œç»“Zpubu   éƒ½å¸‚Údushiu   å†’é™©Zmouxianu   çƒ­è¡€Zrexieu   çˆ±æƒ…Zaiqingu   æ‹çˆ±Zlianaiu   è€½ç¾ŽZdanmeiu   æ­¦ä¾ Zwuxiau   æ ¼æ–—Zgedouu   ç§‘å¹»Zkehuanu   é­”å¹»Zmohuanu   ä¾¦æŽ¢Zzhentanu   æŽ¨ç†Ztuiliu   çŽ„å¹»Zxuanhuanu   æ—¥å¸¸Zrichangu   ç”Ÿæ´»Zshenghuou   æžç¬‘Zgaoxiaou   æ ¡å›­Zxiaoyuanu   å¥‡å¹»Zqihuanu   ç±»åž‹)ÚclassÚfiltersr   )r   ÚfilterÚclassesr)   Útypesr   r   r   ÚhomeContent#   s*   û*"÷
zSpider.homeContentc                 C   s   |   ddd i ¡S )Nr   Ú1)ÚcategoryContentr   r   r   r   ÚhomeVideoContent?   s   zSpider.homeVideoContentc              
   C   s„  |dkr|dkr
dnd|› }n9|dkrd|› }n/|  dd¡}|s6|d	kr)d
}n|dkr0d}n|dkr6d}|}|dkr>d}d|› d|› d|› }zbtj ||  ¡ d}t|jdƒ}	|	 d¡}
g }|
D ]@}| d¡}|slqb|d }| d¡}d}|rŠ|  dd¡}d|v rŠ| d¡d }| d¡}|r–|j ¡ nd}| 	|||ddœ¡ qb||ddd d!œW S  t
yÁ } z
d"g iW  Y d }~S d }~ww )#Nr   r.   z https://cn.bzmanga.com/list/new/z&https://cn.bzmanga.com/list/new/?page=r   z%https://cn.bzmanga.com/classify?page=r   r   r   r   r   r&   r   r'   Ústatez https://cn.bzmanga.com/classify?ú=z&page=©Úheadersúhtml.parserú.comics-cardúa.comics-card__posterÚhrefúamp-imgÚsrcú.w=r   ú.comics-card__title©Úvod_idÚvod_nameÚvod_picÚvod_remarksi'  é$   i?B )ÚlistÚpageÚ	pagecountÚlimitÚtotalrC   )ÚgetÚrequestsr   r   ÚtextÚselectÚ
select_oneÚsplitÚstripÚappendÚ	Exception)r   ÚtidÚpgr*   r   r   r   Z	param_keyÚrÚsoupÚitemsÚvideosÚitemÚlink_tagÚvidÚ	cover_tagÚcoverÚ	title_tagr$   Úer   r   r   r/   B   sZ   




üû€ÿzSpider.categoryContentc                 C   s,  |d }|  d¡sd|› n|}zîtj||  ¡ d}t|jdƒ}| d¡r-| d¡j ¡ nd}| d¡r<| d¡j ¡ nd	}| d
¡rK| d
¡j ¡ nd	}d	}	| d¡}
|
ra|
 dd	¡ d¡d }	| 	d¡}g }|D ]`}| d¡}|s||j
dkr{|}nqj|j ¡ }| dd	¡}d	}t d|¡}|r¥| d¡}| d¡}d|› d|› d}n|  d¡r°d|› }nd|v r»| dd¡}nd|› }| |› d|› ¡ qjt|ƒ}t|ƒ}| ¡  d |¡}d |¡}d|||	dd	d	|d	d	|d |› d!|› d!|› d!|› d"œgiW S  ty } z
dg iW  Y d }~S d }~ww )#Nr   Úhttpzhttps://cn.bzmanga.comr3   r5   z.comics-detail__titleu   æœªçŸ¥z.comics-detail__authorr   z.comics-detail__descr9   r:   r;   z.comics-chapters__itemÚar8   z"comic_id=(\d+).*chapter_slot=(\d+)é   é   z%https://cn.dzmanga.com/comic/chapter/z/0_z.htmlú/zhttps://cn.dzmanga.comzcn.bzmanga.comzcn.dzmanga.comzhttps://cn.dzmanga.com/ú$ú#rC   u   æ¼«ç”»u;   æ­£åº(Mange)$$$æ­£åº(Pics)$$$å€’åº(Mange)$$$å€’åº(Pics)z$$$)r>   r?   r@   r   Úvod_yearÚvod_arearA   Ú	vod_actorÚvod_directorÚvod_contentÚvod_play_fromÚvod_play_url)Ú
startswithrI   rH   r   r   rJ   rL   rN   rM   rK   r$   ÚreÚsearchÚgroupÚreplacerO   rC   ÚreverseÚjoinrP   )r   ÚidsrY   r   rS   rT   r$   ÚauthorÚdescr[   rZ   Zchapter_itemsZraw_url_listrW   Úa_tagZchapter_nameZraw_hrefZreal_chapter_urlÚmatchZc_idZc_slotZ	desc_listZasc_listZstr_descZstr_ascr]   r   r   r   ÚdetailContenty   sr   









ôÿ€ÿzSpider.detailContentr.   c                 C   sÎ   d|› }zXt j||  ¡ d}t|jdƒ}| d¡}g }|D ]:}	|	 d¡}
|
s(q|
d }|	 d¡}d}|r@| d	d¡ d
¡d }|	 d¡}|rL|j ¡ nd}| 	|||ddœ¡ qd|iW S    dg i Y S )Nz https://cn.bzmanga.com/search?q=r3   r5   r6   r7   r8   r9   r   r:   r;   r   r<   r=   rC   )
rI   rH   r   r   rJ   rK   rL   rM   rN   rO   )r   r#   ÚquickrR   r   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r$   r   r   r   ÚsearchContentÄ   s2   





ü
zSpider.searchContentc              
      sŒ  |}|   ¡ }||d< z¢tj||dd}|j}t|dƒ}g }	| d¡}
|
s)| d¡}
|
rg|
 d¡}|s7|
 d¡}|D ]-}| d	¡pD| d
¡}|rfd|v sWd|v sWd|v sWd|v rXq9| d¡rad| }|	 |¡ q9t	|	ƒdk rˆd}t
 ||¡}|D ]}||	vr‡d|v r‚qw|	 |¡ qwg ‰ ‡ fdd„|	D ƒ d ˆ ¡}d|v rždnd}dd|› d|› ddœW S  tyÅ } zdddddœW  Y d }~S d }~ww )Nr   é
   )r4   Útimeoutr5   z.comic-containÚbodyr9   Úimgr:   zdata-srcZnext_chapterZprev_chapterÚiconÚlogoz//zhttps:ra   zJ(https?://[^"\'\s]+static[^"\'\s]+\.(?:jpg|png|webp|jpeg)(?:\?[^"\'\s]*)?)r[   c                    s   g | ]}|ˆ vrˆ   |¡‘qS r   )rO   )Ú.0Úi©Zunique_imgsr   r   Ú
<listcomp>  s    z(Spider.playerContent.<locals>.<listcomp>z&&ÚPicsÚpicsÚmanger   r   z://)ÚparseÚplayUrlr   Úheader)r   rI   rH   rJ   r   rL   rK   rl   rO   Úlenrm   Úfindallrr   rP   )r   ÚflagÚidÚvipFlagsr   r4   rS   ÚhtmlrT   Úimg_listÚ	containerÚimgsr~   r:   ÚpatternÚmatchesÚmÚ
novel_dataÚprotocolr]   r   rƒ   r   ÚplayerContentã   sb   




 

€

€
üü€ÿzSpider.playerContentc                 C   r   r   r   )r   Úparamr   r   r   Ú
localProxy*  r
   zSpider.localProxyN)r   )r.   )Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r   r   r-   r0   r/   rx   rz   r™   r›   r   r   r   r   r      s    
7
KGr   )
ÚjsonÚsysrm   rI   Úbs4r   ÚpathrO   Úbase.spiderr   r   r   r   r   Ú<module>   s   