@@ -30,7 +30,7 @@ class DouYinClient(AbstractApiClient):
3030
3131 def __init__ (
3232 self ,
33- timeout = 30 , # 若开启爬取媒体选项,抖音的短视频需要更久的超时时间
33+ timeout = 60 , # 若开启爬取媒体选项,抖音的短视频需要更久的超时时间
3434 proxy = None ,
3535 * ,
3636 headers : Dict ,
@@ -305,17 +305,22 @@ async def get_all_user_aweme_posts(self, sec_user_id: str, callback: Optional[Ca
305305 posts_has_more = aweme_post_res .get ("has_more" , 0 )
306306 max_cursor = aweme_post_res .get ("max_cursor" )
307307 aweme_list = aweme_post_res .get ("aweme_list" ) if aweme_post_res .get ("aweme_list" ) else []
308- utils .logger .info (f"[DouYinCrawler .get_all_user_aweme_posts] get sec_user_id:{ sec_user_id } video len : { len (aweme_list )} " )
308+ utils .logger .info (f"[DouYinClient .get_all_user_aweme_posts] get sec_user_id:{ sec_user_id } video len : { len (aweme_list )} " )
309309 if callback :
310310 await callback (aweme_list )
311311 result .extend (aweme_list )
312312 return result
313313
314314 async def get_aweme_media (self , url : str ) -> Union [bytes , None ]:
315315 async with httpx .AsyncClient (proxy = self .proxy ) as client :
316- response = await client .request ("GET" , url , timeout = self .timeout , follow_redirects = True )
317- if not response .reason_phrase == "OK" :
318- utils .logger .error (f"[DouYinCrawler.get_aweme_media] request { url } err, res:{ response .text } " )
316+ try :
317+ response = await client .request ("GET" , url , timeout = self .timeout , follow_redirects = True )
318+ response .raise_for_status ()
319+ if not response .reason_phrase == "OK" :
320+ utils .logger .error (f"[DouYinClient.get_aweme_media] request { url } err, res:{ response .text } " )
321+ return None
322+ else :
323+ return response .content
324+ except httpx .HTTPStatusError as exc : # some wrong when call httpx.request method, such as connection error, client error or server error
325+ utils .logger .error (f"[DouYinClient.get_aweme_media] { exc } " )
319326 return None
320- else :
321- return response .content
0 commit comments