2026-05-07 10:45:41 [scrapy.utils.log] INFO: Scrapy 2.11.1 started (bot: news_scraper) 2026-05-07 10:45:41 [scrapy.utils.log] INFO: Versions: lxml 6.0.2.0, libxml2 2.14.6, cssselect 1.3.0, parsel 1.10.0, w3lib 2.3.1, Twisted 25.5.0, Python 3.11.13 (main, Aug 12 2025, 22:39:41) [GCC 14.2.0], pyOpenSSL 25.3.0 (OpenSSL 3.5.3 16 Sep 2025), cryptography 46.0.1, Platform Linux-5.15.0-164-generic-x86_64-with 2026-05-07 10:45:41 [scrapy.addons] INFO: Enabled addons: [] 2026-05-07 10:45:41 [asyncio] DEBUG: Using selector: EpollSelector 2026-05-07 10:45:41 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor 2026-05-07 10:45:41 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop 2026-05-07 10:45:41 [scrapy.extensions.telnet] INFO: Telnet Password: 857593dfa1b641c9 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from creating-client-class.iot-data to creating-client-class.iot-data-plane 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from before-call.apigateway to before-call.api-gateway 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from request-created.machinelearning.Predict to request-created.machine-learning.Predict 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.autoscaling.CreateLaunchConfiguration to before-parameter-build.auto-scaling.CreateLaunchConfiguration 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.route53 to before-parameter-build.route-53 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from request-created.cloudsearchdomain.Search to request-created.cloudsearch-domain.Search 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from docs.*.autoscaling.CreateLaunchConfiguration.complete-section to docs.*.auto-scaling.CreateLaunchConfiguration.complete-section 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.logs.CreateExportTask to before-parameter-build.cloudwatch-logs.CreateExportTask 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from docs.*.logs.CreateExportTask.complete-section to docs.*.cloudwatch-logs.CreateExportTask.complete-section 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.cloudsearchdomain.Search to before-parameter-build.cloudsearch-domain.Search 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Changing event name from docs.*.cloudsearchdomain.Search.complete-section to docs.*.cloudsearch-domain.Search.complete-section 2026-05-07 10:45:41 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/endpoints.json 2026-05-07 10:45:41 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/sdk-default-configuration.json 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Event choose-service-name: calling handler 2026-05-07 10:45:41 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/s3/2006-03-01/service-2.json.gz 2026-05-07 10:45:41 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json.gz 2026-05-07 10:45:41 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/partitions.json 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler ._handler at 0x7f7a0a604860> 2026-05-07 10:45:41 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2026-05-07 10:45:41 [botocore.endpoint] DEBUG: Setting s3 timeout as (60, 60) 2026-05-07 10:45:41 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/_retry.json 2026-05-07 10:45:41 [botocore.client] DEBUG: Registering retry handlers for service: s3 2026-05-07 10:45:41 [botocore.utils] DEBUG: Registering S3 region redirector handler 2026-05-07 10:45:41 [botocore.utils] DEBUG: Registering S3Express Identity Resolver 2026-05-07 10:45:41 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.closespider.CloseSpider', 'scrapy.extensions.feedexport.FeedExporter', 'scrapy.extensions.logstats.LogStats', 'scrapy.extensions.throttle.AutoThrottle'] 2026-05-07 10:45:41 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': True, 'BOT_NAME': 'news_scraper', 'CLOSESPIDER_TIMEOUT': 1800, 'CONCURRENT_REQUESTS': 4, 'DOWNLOAD_DELAY': 2, 'FEED_EXPORT_ENCODING': 'utf-8', 'LOG_FILE': '/opt/scrapyd/logs/news_scraper/thanhnien_timestamp/d6e34f1c4a0111f1b022e21541d96bd3.log', 'NEWSPIDER_MODULE': 'news_scraper.spiders', 'REQUEST_FINGERPRINTER_IMPLEMENTATION': '2.7', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['news_scraper.spiders'], 'TWISTED_REACTOR': 'twisted.internet.asyncioreactor.AsyncioSelectorReactor'} 2026-05-07 10:45:42 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware', 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 'news_scraper.middlewares.NewsScraperDownloaderMiddleware', 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 2026-05-07 10:45:42 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] 2026-05-07 10:45:42 [scrapy.middleware] INFO: Enabled item pipelines: [] 2026-05-07 10:45:42 [scrapy.core.engine] INFO: Spider opened 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from creating-client-class.iot-data to creating-client-class.iot-data-plane 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from before-call.apigateway to before-call.api-gateway 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from request-created.machinelearning.Predict to request-created.machine-learning.Predict 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.autoscaling.CreateLaunchConfiguration to before-parameter-build.auto-scaling.CreateLaunchConfiguration 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.route53 to before-parameter-build.route-53 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from request-created.cloudsearchdomain.Search to request-created.cloudsearch-domain.Search 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from docs.*.autoscaling.CreateLaunchConfiguration.complete-section to docs.*.auto-scaling.CreateLaunchConfiguration.complete-section 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.logs.CreateExportTask to before-parameter-build.cloudwatch-logs.CreateExportTask 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from docs.*.logs.CreateExportTask.complete-section to docs.*.cloudwatch-logs.CreateExportTask.complete-section 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.cloudsearchdomain.Search to before-parameter-build.cloudsearch-domain.Search 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Changing event name from docs.*.cloudsearchdomain.Search.complete-section to docs.*.cloudsearch-domain.Search.complete-section 2026-05-07 10:45:42 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/endpoints.json 2026-05-07 10:45:42 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/sdk-default-configuration.json 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Event choose-service-name: calling handler 2026-05-07 10:45:42 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/s3/2006-03-01/service-2.json.gz 2026-05-07 10:45:42 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json.gz 2026-05-07 10:45:42 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/partitions.json 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler ._handler at 0x7f7a0972d940> 2026-05-07 10:45:42 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2026-05-07 10:45:42 [botocore.endpoint] DEBUG: Setting s3 timeout as (60, 60) 2026-05-07 10:45:42 [botocore.loaders] DEBUG: Loading JSON file: /usr/local/lib/python3.11/site-packages/botocore/data/_retry.json 2026-05-07 10:45:42 [botocore.client] DEBUG: Registering retry handlers for service: s3 2026-05-07 10:45:42 [botocore.utils] DEBUG: Registering S3 region redirector handler 2026-05-07 10:45:42 [botocore.utils] DEBUG: Registering S3Express Identity Resolver 2026-05-07 10:45:42 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2026-05-07 10:45:42 [thanhnien_timestamp] INFO: Spider opened: thanhnien_timestamp 2026-05-07 10:45:42 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6026 2026-05-07 10:45:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) 2026-05-07 10:45:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) 2026-05-07 10:45:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/) 2026-05-07 10:45:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:45:49 [thanhnien_timestamp] INFO: 2026-05-07 17:18:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:45:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:45:51 [thanhnien_timestamp] INFO: 2026-05-07 17:18:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:45:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:45:54 [thanhnien_timestamp] INFO: 2026-05-07 17:20:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:45:56 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:45:56 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/chat/completions', 'files': None, 'json_data': {'messages': [{'role': 'user', 'content': 'Act as a content analysis tool. I will provide you with a piece of content, and your task is to extract relevant tags (keywords or phrases) that summarize the main topics, themes, or ideas present in the text. The tags should be concise, specific, and useful for categorization or search purposes. Ignore common filler words (e.g., \'the\', \'and\', \'is\') unless they are part of a specific concept or phrase. After analyzing the content, return the tags in a simple list format. Here is the content to analyze: Chiều 7.5, tại buổi họp báo về tình hình kinh tế - xã hội trên địa bàn, bà Nguyễn Thị Thanh Thảo, Trưởng phòng Quy hoạch phát triển tài nguyên du lịch (Sở Du lịch TP.HCM), cho biết du lịch đêm ở TP.HCM đóng vai trò quan trọng trong việc tăng trưởng của ngành du lịch. "Du lịch đêm gia tăng chi tiêu và kéo dài độ dài lưu trú của khách du lịch khi đến TP.HCM, kể cả khách quốc tế lẫn khách nội địa. Đây là một trong những dòng sản phẩm quan trọng đối với TP.HCM thời gian vừa qua và sắp tới, đặc biệt là khi chúng ta có thêm các không gian mới", bà Thảo nói. Hiện nay TP.HCM đang có các dòng sản phẩm du lịch đêm, bao gồm: Nhóm trải nghiệm đời sống đô thị : Chương trình tham quan TP.HCM về đêm bằng xe buýt 2 tầng, buýt sông 2 tầng; hoặc các tour khám phá thành phố bằng xe cổ, xe Vespa kết hợp ngắm cảnh và trải nghiệm ẩm thực. Các tour dạo phố, ghé chợ hoa Hồ Thị Kỷ và các khu phố ẩm thực đêm hiện đang được du khách rất ưa chuộng. Nhóm show biểu diễn văn hóa nghệ thuật : Trung tâm biểu diễn TP.HCM đưa vào khai thác rạp xiếc mới với các chương trình biểu diễn xiếc hiện đại. Ngoài ra còn có các show hấp dẫn như: À Ố Show, Việt Nam (diễn tại Dinh Thống Nhất), Chào Show.... Đây là các show kết hợp giữa nghệ thuật truyền thống và ẩm thực, thu hút tốt cả khách trong nước và quốc tế. Nhóm trải nghiệm du lịch đường sông : Các tàu nhà hàng tại khu vực trung tâm đang phát triển mạnh. "Sáng nay, Sở Du lịch TP.HCM cũng đã họp với các doanh nghiệp du lịch đường thủy; họ đang chờ thành phố quy hoạch thêm các bến bãi để đóng mới và đưa thêm tàu từ các khu vực khác về phục vụ", bà Thảo chia sẻ. Mặc dù đa dạng nhưng so với tiềm năng, du lịch đêm ở TP.HCM vẫn cần thêm các sản phẩm mới. Một số khó khăn hiện nay bao gồm: '}], 'model': 'gpt-4o-mini', 'max_tokens': 200, 'temperature': 0.3}} 2026-05-07 10:45:56 [openai._base_client] DEBUG: Sending HTTP Request: POST https://api.openai.com/v1/chat/completions 2026-05-07 10:45:56 [httpcore.connection] DEBUG: connect_tcp.started host='api.openai.com' port=443 local_address=None timeout=900 socket_options=None 2026-05-07 10:45:56 [httpcore.connection] DEBUG: connect_tcp.complete return_value= 2026-05-07 10:45:56 [httpcore.connection] DEBUG: start_tls.started ssl_context= server_hostname='api.openai.com' timeout=900 2026-05-07 10:45:56 [httpcore.connection] DEBUG: start_tls.complete return_value= 2026-05-07 10:45:56 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-05-07 10:45:56 [httpcore.http11] DEBUG: send_request_headers.complete 2026-05-07 10:45:56 [httpcore.http11] DEBUG: send_request_body.started request= 2026-05-07 10:45:56 [httpcore.http11] DEBUG: send_request_body.complete 2026-05-07 10:45:56 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-05-07 10:46:00 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Thu, 07 May 2026 10:45:59 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'CF-Ray', b'9f7fa3536ef084a8-HKG'), (b'CF-Cache-Status', b'DYNAMIC'), (b'Server', b'cloudflare'), (b'Strict-Transport-Security', b'max-age=31536000; includeSubDomains; preload'), (b'X-Content-Type-Options', b'nosniff'), (b'access-control-expose-headers', b'X-Request-ID'), (b'openai-organization', b'user-bmggli0qfnphtzkdehrnfdrn'), (b'openai-processing-ms', b'2957'), (b'openai-project', b'proj_AqBCEfNib7E5LbrMYDz2oklk'), (b'openai-version', b'2020-10-01'), (b'x-openai-proxy-wasm', b'v0.1'), (b'x-ratelimit-limit-requests', b'30000'), (b'x-ratelimit-limit-tokens', b'150000000'), (b'x-ratelimit-remaining-requests', b'29999'), (b'x-ratelimit-remaining-tokens', b'149999315'), (b'x-ratelimit-reset-requests', b'2ms'), (b'x-ratelimit-reset-tokens', b'0s'), (b'x-request-id', b'req_0384737c86c54fea92835188a8c8dc84'), (b'set-cookie', b'__cf_bm=27hBHltM4rO_fxO1mtEI79AyuEJ_d51mzD1kAwG7X2s-1778150756.3837757-1.0.1.1-IxmMT__9X3xDd0UnmC5fQT7oWjSVIBb6RDqn.TkizpqpujiIa_vL7xxtmqwloi7CmsvMh2cYonNHuN0KfsDgP8wbKsBmEo7zUw2xiLeiPGnvp6Iu2.cSCDXRjqqvQLhS; HttpOnly; Secure; Path=/; Domain=api.openai.com; Expires=Thu, 07 May 2026 11:15:59 GMT'), (b'Content-Encoding', b'gzip'), (b'alt-svc', b'h3=":443"; ma=86400')]) 2026-05-07 10:46:00 [httpx] INFO: HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" 2026-05-07 10:46:00 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-05-07 10:46:00 [httpcore.http11] DEBUG: receive_response_body.complete 2026-05-07 10:46:00 [httpcore.http11] DEBUG: response_closed.started 2026-05-07 10:46:00 [httpcore.http11] DEBUG: response_closed.complete 2026-05-07 10:46:00 [openai._base_client] DEBUG: HTTP Response: POST https://api.openai.com/v1/chat/completions "200 OK" Headers({'date': 'Thu, 07 May 2026 10:45:59 GMT', 'content-type': 'application/json', 'transfer-encoding': 'chunked', 'connection': 'keep-alive', 'cf-ray': '9f7fa3536ef084a8-HKG', 'cf-cache-status': 'DYNAMIC', 'server': 'cloudflare', 'strict-transport-security': 'max-age=31536000; includeSubDomains; preload', 'x-content-type-options': 'nosniff', 'access-control-expose-headers': 'X-Request-ID', 'openai-organization': 'user-bmggli0qfnphtzkdehrnfdrn', 'openai-processing-ms': '2957', 'openai-project': 'proj_AqBCEfNib7E5LbrMYDz2oklk', 'openai-version': '2020-10-01', 'x-openai-proxy-wasm': 'v0.1', 'x-ratelimit-limit-requests': '30000', 'x-ratelimit-limit-tokens': '150000000', 'x-ratelimit-remaining-requests': '29999', 'x-ratelimit-remaining-tokens': '149999315', 'x-ratelimit-reset-requests': '2ms', 'x-ratelimit-reset-tokens': '0s', 'x-request-id': 'req_0384737c86c54fea92835188a8c8dc84', 'set-cookie': '__cf_bm=27hBHltM4rO_fxO1mtEI79AyuEJ_d51mzD1kAwG7X2s-1778150756.3837757-1.0.1.1-IxmMT__9X3xDd0UnmC5fQT7oWjSVIBb6RDqn.TkizpqpujiIa_vL7xxtmqwloi7CmsvMh2cYonNHuN0KfsDgP8wbKsBmEo7zUw2xiLeiPGnvp6Iu2.cSCDXRjqqvQLhS; HttpOnly; Secure; Path=/; Domain=api.openai.com; Expires=Thu, 07 May 2026 11:15:59 GMT', 'content-encoding': 'gzip', 'alt-svc': 'h3=":443"; ma=86400'}) 2026-05-07 10:46:00 [openai._base_client] DEBUG: request_id: req_0384737c86c54fea92835188a8c8dc84 2026-05-07 10:46:00 [thanhnien_timestamp] INFO: Min timestamp: 2026-05-07 17:25:00, Published timestamp: 2026-05-07 17:30:00 2026-05-07 10:46:00 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): tts-api:4444 2026-05-07 10:46:20 [urllib3.connectionpool] DEBUG: http://tts-api:4444 "POST /api/v2/text-to-speech HTTP/1.1" 200 411 2026-05-07 10:46:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://thanhnien.vn/du-lich-dem-o-tphcm-du-khach-se-choi-gi-sau-0-gio-18526050717071798.htm> {'audio_url': 'https://lake-api.actable.ai/tts-data/haeexlrw-2026-05-07%2010%3A46%3A00.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=pmq7GsXVsXQZXqTM0hWE%2F20260507%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260507T104618Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ff3df89f8a6223950cefddc0a89d6d1f6b7e2510dab56702f5e680309fe100cb', 'author': None, 'category': 'Thời sự', 'content': 'Chiều 7.5, tại buổi họp báo về tình hình kinh tế - xã hội trên ' 'địa bàn, bà Nguyễn Thị Thanh Thảo, Trưởng phòng Quy hoạch phát ' 'triển tài nguyên du lịch (Sở Du lịch TP.HCM), cho biết du lịch ' 'đêm ở TP.HCM đóng vai trò quan trọng trong việc tăng trưởng của ' 'ngành du lịch. "Du lịch đêm gia tăng chi tiêu và kéo dài độ dài ' 'lưu trú của khách du lịch khi đến TP.HCM, kể cả khách quốc tế lẫn ' 'khách nội địa. Đây là một trong những dòng sản phẩm quan trọng ' 'đối với TP.HCM thời gian vừa qua và sắp tới, đặc biệt là khi ' 'chúng ta có thêm các không gian mới", bà Thảo nói. Hiện nay ' 'TP.HCM đang có các dòng sản phẩm du lịch đêm, bao gồm: Nhóm trải ' 'nghiệm đời sống đô thị : Chương trình tham quan TP.HCM về đêm ' 'bằng xe buýt 2 tầng, buýt sông 2 tầng; hoặc các tour khám phá ' 'thành phố bằng xe cổ, xe Vespa kết hợp ngắm cảnh và trải nghiệm ' 'ẩm thực. Các tour dạo phố, ghé chợ hoa Hồ Thị Kỷ và các khu phố ' 'ẩm thực đêm hiện đang được du khách rất ưa chuộng. Nhóm show biểu ' 'diễn văn hóa nghệ thuật : Trung tâm biểu diễn TP.HCM đưa vào khai ' 'thác rạp xiếc mới với các chương trình biểu diễn xiếc hiện đại. ' 'Ngoài ra còn có các show hấp dẫn như: À Ố Show, Việt Nam (diễn ' 'tại Dinh Thống Nhất), Chào Show.... Đây là các show kết hợp giữa ' 'nghệ thuật truyền thống và ẩm thực, thu hút tốt cả khách trong ' 'nước và quốc tế. Nhóm trải nghiệm du lịch đường sông : Các tàu ' 'nhà hàng tại khu vực trung tâm đang phát triển mạnh. "Sáng nay, ' 'Sở Du lịch TP.HCM cũng đã họp với các doanh nghiệp du lịch đường ' 'thủy; họ đang chờ thành phố quy hoạch thêm các bến bãi để đóng ' 'mới và đưa thêm tàu từ các khu vực khác về phục vụ", bà Thảo chia ' 'sẻ. Mặc dù đa dạng nhưng so với tiềm năng, du lịch đêm ở TP.HCM ' 'vẫn cần thêm các sản phẩm mới. Một số khó khăn hiện nay bao gồm: ', 'description': "Du lịch đêm ở TP.HCM như 'mỏ vàng' của ngành du lịch. Các sản " 'phẩm độc đáo hút khách như: tour xe buýt 2 tầng, show nghệ ' 'thuật, du thuyền sông Sài Gòn...', 'html_content': '
\n' '\n' '
\n' '\n' ' ' '

Chiều 7.5, tại buổi họp báo về tình hình kinh tế - xã hội ' 'trên địa bàn, bà Nguyễn Thị Thanh Thảo, Trưởng phòng Quy ' 'hoạch phát triển tài nguyên du lịch (Sở Du lịch TP.HCM), cho ' 'biết du lịch đêm ở ' 'TP.HCM đóng vai trò quan trọng trong việc tăng trưởng ' 'của ngành du lịch.

"Du lịch đêm gia tăng chi tiêu và ' 'kéo dài độ dài lưu trú của khách du lịch khi đến TP.HCM, kể ' 'cả khách quốc tế lẫn khách nội địa. Đây là một trong những ' 'dòng sản phẩm quan trọng đối với TP.HCM thời gian vừa qua và ' 'sắp tới, đặc biệt là khi chúng ta có thêm các không gian ' 'mới", bà Thảo nói.

Du lịch '
                 'đêm ở TP.HCM: Du khách sẽ chơi gì sau 0 giờ? - Ảnh 1.

Bà Nguyễn Thị Thanh ' 'Thảo chia sẻ về các sản phẩm du lịch đêm ở ' 'TP.HCM

ẢNH: UYỂN ' 'NHI

Các nhóm sản phẩm du lịch đêm "đắt ' 'khách" tại TP.HCM

Hiện nay TP.HCM đang có các dòng sản phẩm du lịch đêm, ' 'bao gồm:

Nhóm trải nghiệm đời sống đô thị: ' 'Chương trình tham quan TP.HCM về đêm bằng xe buýt 2 tầng, ' 'buýt sông 2 tầng; hoặc các tour khám phá thành phố bằng xe ' 'cổ, xe Vespa kết hợp ngắm cảnh và trải nghiệm ẩm ' 'thực.

Các tour dạo phố, ghé chợ hoa Hồ Thị Kỷ và các ' 'khu phố ẩm ' 'thực đêm hiện đang được du khách rất ưa ' 'chuộng.

Du lịch '
                 'đêm ở TP.HCM: Du khách sẽ chơi gì sau 0 giờ? - Ảnh 2.

Phố đêm Chợ ' 'Lớn (trước chợ Bình Tây, TP.HCM) vừa ra mắt tháng ' '4.2026

ẢNH: UYỂN ' 'NHI

Nhóm show biểu diễn văn hóa nghệ ' 'thuật: Trung tâm biểu diễn TP.HCM đưa vào khai thác rạp ' 'xiếc mới với các chương trình biểu diễn xiếc hiện ' 'đại.

Ngoài ra còn có các show hấp dẫn như: À Ố Show, ' 'Việt Nam (diễn tại Dinh Thống Nhất), Chào Show.... Đây là ' 'các show kết hợp giữa nghệ thuật truyền thống và ẩm thực, ' 'thu hút tốt cả khách trong nước và quốc tế.

Nhóm ' 'trải nghiệm du lịch đường sông: Các tàu nhà hàng tại khu ' 'vực trung tâm đang phát triển mạnh.

"Sáng nay, Sở Du ' 'lịch TP.HCM cũng đã họp với các doanh nghiệp du lịch đường ' 'thủy; họ đang chờ thành phố quy hoạch thêm các bến bãi để ' 'đóng mới và đưa thêm tàu từ các khu vực khác về phục vụ", bà ' 'Thảo chia sẻ.

Du lịch '
                 'đêm ở TP.HCM: Du khách sẽ chơi gì sau 0 giờ? - Ảnh 3.

Người dân hào ' 'hứng trải nghiệm du lịch đêm ở TP.HCM

ẢNH: UYỂN NHI

"Điểm nghẽn" ' 'khiến du lịch đêm TP.HCM chưa bứt phá

Mặc dù đa dạng ' 'nhưng so với tiềm năng, du lịch đêm ở ' 'TP.HCM vẫn cần thêm các sản phẩm mới. Một số khó khăn ' 'hiện nay bao gồm:

  1. Ảnh hưởng đến dân cư: Các địa ' 'bàn trọng điểm du lịch tập trung ở trung tâm, nơi có dân cư ' 'xen cài. Hoạt động sau 23 giờ dễ gây ảnh hưởng đến đời sống ' 'người dân. Vì vậy, ngành du lịch đã đặt hàng đơn vị tư vấn ' 'quy hoạch các khu vực chuyên biệt để phát triển kinh tế đêm ' 'mà ít tác động đến cư dân nhất.
  2. Dịch vụ bổ trợ: Để ' 'khách (đặc biệt là khách quốc tế lệch múi giờ) có thể chơi ' 'sau 0 giờ, cần các dịch vụ như giao thông công cộng về ' 'khuya. Tuy nhiên, các dịch vụ này cũng cần một lượng khách ' 'đủ lớn mới có thể hình thành và duy trì.
  3. Thu hút đầu ' 'tư: TP.HCM đang kêu gọi đầu tư các dự án lớn, ưu tiên các ' 'nhà đầu tư chiến lược xây dựng các khu vui chơi giải trí ' 'phức hợp quy mô lớn, trong đó có kinh tế ' 'đêm.

\n' ' \n' '\n' '\n' ' \n' '
\n' ' \n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' '\n' '
\n' '\n' '
', 'md_content': '\n' '\n' 'Chiều 7.5, tại buổi họp báo về tình hình kinh tế - xã hội trên ' 'địa bàn, bà Nguyễn Thị Thanh Thảo, Trưởng phòng Quy hoạch phát ' 'triển tài nguyên du lịch (Sở Du lịch TP.HCM), cho biết [du ' 'lịch đêm ở ' 'TP.HCM](https://thanhnien.vn/du-lich-dem-o-tphcm.html "du lịch ' 'đêm ở tp.hcm") đóng vai trò quan trọng trong việc tăng trưởng ' 'của ngành du lịch.\n' '\n' '"Du lịch đêm gia tăng chi tiêu và kéo dài độ dài lưu trú của ' 'khách du lịch khi đến TP.HCM, kể cả khách quốc tế lẫn khách ' 'nội địa. Đây là một trong những dòng sản phẩm quan trọng đối ' 'với TP.HCM thời gian vừa qua và sắp tới, đặc biệt là khi chúng ' 'ta có thêm các không gian mới", bà Thảo nói.\n' '\n' '![Du lịch đêm ở TP.HCM: Du khách sẽ chơi gì sau 0 giờ? - Ảnh ' '1.](https://images2.thanhnien.vn/thumb_w/640/528068263637045248/2026/5/7/edit-du-lich-dem-tphcm-17781480843991059494945.jpeg)Bà ' 'Nguyễn Thị Thanh Thảo chia sẻ về các sản phẩm du lịch đêm ở ' 'TP.HCM\n' '\n' 'ẢNH: UYỂN NHI\n' '\n' '## Các nhóm sản phẩm du lịch đêm "đắt khách" tại TP.HCM\n' '\n' 'Hiện nay ' '[TP.HCM](https://thanhnien.vn/nha-tho-dong-tien-khong-cot-o-tphcm-dau-an-nguoi-thiet-ke-dinh-doc-lap-185260504163210696.htm ' '"Nhà thờ Đồng Tiến \'không cột\' ở TP.HCM") đang có các dòng ' 'sản phẩm du lịch đêm, bao gồm:\n' '\n' '**Nhóm trải nghiệm đời sống đô thị**: Chương trình tham quan ' 'TP.HCM về đêm bằng xe buýt 2 tầng, buýt sông 2 tầng; hoặc các ' 'tour khám phá thành phố bằng xe cổ, xe Vespa kết hợp ngắm cảnh ' 'và trải nghiệm ẩm thực.\n' '\n' 'Các tour dạo phố, ghé chợ hoa Hồ Thị Kỷ và các [khu phố ẩm ' 'thực ' 'đêm](https://thanhnien.vn/kham-pha-pho-dem-cho-lon-nguoi-tre-do-xo-trai-nghiem-185260426135304446.htm ' '"khu phố ẩm thực đêm") hiện đang được du khách rất ưa chuộng.\n' '\n' '![Du lịch đêm ở TP.HCM: Du khách sẽ chơi gì sau 0 giờ? - Ảnh ' '2.](https://images2.thanhnien.vn/thumb_w/640/528068263637045248/2026/4/24/am-thuc-nguoi-hoa-pho-dem-cho-lon-1777046143653522784481.jpeg)Phố ' 'đêm Chợ Lớn (trước chợ Bình Tây, TP.HCM) vừa ra mắt tháng ' '4.2026\n' '\n' 'ẢNH: UYỂN NHI\n' '\n' '**Nhóm show biểu diễn văn hóa nghệ thuật**: Trung tâm biểu ' 'diễn TP.HCM đưa vào khai thác rạp xiếc mới với các chương ' 'trình biểu diễn xiếc hiện đại.\n' '\n' 'Ngoài ra còn có các show hấp dẫn như: À Ố Show, Việt Nam (diễn ' 'tại Dinh Thống Nhất), Chào Show.... Đây là các show kết hợp ' 'giữa nghệ thuật truyền thống và ẩm thực, thu hút tốt cả khách ' 'trong nước và quốc tế.\n' '\n' '**Nhóm trải nghiệm du lịch đường sông**: Các tàu nhà hàng tại ' 'khu vực trung tâm đang phát triển mạnh.\n' '\n' '"Sáng nay, Sở Du lịch TP.HCM cũng đã họp với các doanh nghiệp ' 'du lịch đường thủy; họ đang chờ thành phố quy hoạch thêm các ' 'bến bãi để đóng mới và đưa thêm tàu từ các khu vực khác về ' 'phục vụ", bà Thảo chia sẻ.\n' '\n' '![Du lịch đêm ở TP.HCM: Du khách sẽ chơi gì sau 0 giờ? - Ảnh ' '3.](https://images2.thanhnien.vn/thumb_w/640/528068263637045248/2026/4/24/du-khach-trai-nghiem-pho-dem-17770461436821531420137.jpg)Người ' 'dân hào hứng trải nghiệm du lịch đêm ở TP.HCM\n' '\n' 'ẢNH: UYỂN NHI\n' '\n' '## "Điểm nghẽn" khiến du lịch đêm TP.HCM chưa bứt phá\n' '\n' 'Mặc dù đa dạng nhưng so với tiềm năng, [du lịch đêm ở ' 'TP.HCM](https://thanhnien.vn/ra-mat-pho-dem-cho-lon-thien-duong-am-thuc-nguoi-hoa-moi-nhat-tai-tphcm-185260424230209482.htm ' '"du lịch đêm ở TP.HCM") vẫn cần thêm các sản phẩm mới. Một số ' 'khó khăn hiện nay bao gồm:\n' '\n' '1. Ảnh hưởng đến dân cư: Các địa bàn trọng điểm du lịch tập ' 'trung ở trung tâm, nơi có dân cư xen cài. Hoạt động sau 23 giờ ' 'dễ gây ảnh hưởng đến đời sống người dân. Vì vậy, ngành du lịch ' 'đã đặt hàng đơn vị tư vấn quy hoạch các khu vực chuyên biệt để ' 'phát triển kinh tế đêm mà ít tác động đến cư dân nhất.\n' '2. Dịch vụ bổ trợ: Để khách (đặc biệt là khách quốc tế lệch ' 'múi giờ) có thể chơi sau 0 giờ, cần các dịch vụ như giao thông ' 'công cộng về khuya. Tuy nhiên, các dịch vụ này cũng cần một ' 'lượng khách đủ lớn mới có thể hình thành và duy trì.\n' '3. Thu hút đầu tư: TP.HCM đang kêu gọi đầu tư các dự án lớn, ' 'ưu tiên các nhà đầu tư chiến lược xây dựng các khu vui chơi ' 'giải trí phức hợp quy mô lớn, trong đó có kinh tế đêm.\n' ' \n' '\n' '\n' '\n' '\n' ' //Chèn ads giữa bài\n' ' (runinit = window.runinit || []).push(function () {\n' ' //Nếu k chạy ads thì return\n' " if (typeof \\_chkPrLink != 'undefined' && \\_chkPrLink)\n" ' return;\n' '\n' '\n' ' var mutexAds = \'\';\n' ' var content = $(\'[data-role="content"]\');\n' ' if (content.length > 0) {\n' ' var childNodes = content[0].childNodes;\n' ' for (i = 0; i < childNodes.length; i++) {\n' ' var childNode = childNodes[i];\n' '\n' ' var isPhotoOrVideo = false;\n' " if (childNode.nodeName.toLowerCase() == 'div') {\n" ' // kiem tra xem co la anh khong?\n' " var type = $(childNode).attr('class') + '';\n" '\n' " if (type.indexOf('VCSortableInPreviewMode') >= 0) {\n" ' isPhotoOrVideo = true;\n' ' }\n' ' }\n' '\n' ' try {\n' ' if ((i >= childNodes.length / 2 - 1) && (i < ' 'childNodes.length / 2) && !isPhotoOrVideo) {\n' ' if (i <= childNodes.length - 3) {\n' ' childNode.after(htmlToElement(mutexAds));\n' ' arfAsync.push("l2srqb41");\n' ' }\n' ' break;\n' ' }\n' ' }\n' ' catch (e) { }\n' ' }\n' ' }\n' ' });\n' ' function htmlToElement(html) {\n' " var template = document.createElement('template');\n" ' template.innerHTML = html;\n' ' return template.content.firstChild;\n' ' }\n' '\n' '\n' '\n' ' if (window.pageSettings && pageSettings.allow3rd && (typeof ' "window.\\_isAdsHidden === 'undefined' || " '!window.\\_isAdsHidden)) {\n' ' if (!laNuocNgoai) {\n' ' (function (w, q) {\n' ' w[q] = w[q] || [];\n' ' w[q].push(["\\_mgc.load"]);\n' ' })(window, "\\_mgq");\n' ' }\n' ' }\n' ' \n' '\n' '\n' ' (function() {\n' ' if (!(window.pageSettings && pageSettings.allow3rd && (typeof ' "window.\\_isAdsHidden === 'undefined' || " '!window.\\_isAdsHidden))) return;\n' " if (typeof window.laNuocNgoai === 'undefined' || " '!window.laNuocNgoai) return; // chỉ chạy khi laNuocNgoai true\n' '\n' " var containerSelector = 'div.detail-cmain';\n" ' var root = document.querySelector(containerSelector);\n' ' if (!root) return;\n' '\n' ' // Thu thập figure + p (p không nằm trong figure)\n' " var figures = Array.from(root.querySelectorAll('figure'));\n" ' var paragraphs = ' "Array.from(root.querySelectorAll('p')).filter(function(p){ " "return !p.closest('figure'); });\n" ' var elements = figures.concat(paragraphs); // NodeList vốn đã ' 'theo DOM order => không cần sort\n' ' if (!elements.length) return;\n' '\n' ' var target = elements[Math.floor(elements.length / 2)]; // ' 'giữa bài\n' ' if (!target || !target.parentNode) return;\n' '\n' " var newDiv = document.createElement('div');\n" " newDiv.id = 'taboola-mid-article-widget';\n" ' target.parentNode.insertBefore(newDiv, target.nextSibling);\n' '\n' ' window.\\_taboola = window.\\_taboola || [];\n' ' window.\\_taboola.push({\n' " mode: 'thumbnails-4x1',\n" " container: 'taboola-mid-article-widget',\n" " placement: 'Mid Article Widget',\n" " target\\_type: 'mix'\n" ' });\n' ' })();\n' ' \n' '\n', 'published_date': datetime.date(2026, 5, 7), 'published_timestamp': datetime.datetime(2026, 5, 7, 17, 30), 'source': 'ThanhNien', 'tags': ['Du lịch đêm', 'TP.HCM', 'Tăng trưởng du lịch', 'Chi tiêu du khách', 'Lưu trú khách du lịch', 'Sản phẩm du lịch', 'Trải nghiệm đô thị', 'Tour tham quan', 'Xe buýt 2 tầng', 'Xe cổ', 'Vespa', 'Ẩm thực', 'Chợ hoa Hồ Thị Kỷ', 'Khu phố ẩm thực', 'Biểu diễn văn hóa nghệ thuật', 'Rạp xiếc', 'À Ố Show', 'Du lịch đường sông', 'Tàu nhà hàng', 'Quy hoạch du lịch', 'Doanh nghiệp du lịch', 'Khó khăn du lịch đêm'], 'title': 'Du lịch đêm ở TP.HCM: Du khách sẽ chơi gì sau 0 giờ?', 'url': 'https://thanhnien.vn/du-lich-dem-o-tphcm-du-khach-se-choi-gi-sau-0-gio-18526050717071798.htm', 'voice': 'SG-Nam-1-TM'} 2026-05-07 10:46:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:21 [thanhnien_timestamp] INFO: 2026-05-07 16:45:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:23 [thanhnien_timestamp] INFO: 2026-05-07 16:45:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:26 [httpcore.connection] DEBUG: close.started 2026-05-07 10:46:26 [httpcore.connection] DEBUG: close.complete 2026-05-07 10:46:26 [thanhnien_timestamp] INFO: 2026-05-07 16:52:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:28 [thanhnien_timestamp] INFO: 2026-05-07 16:54:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:31 [thanhnien_timestamp] INFO: 2026-05-07 16:55:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:34 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:34 [thanhnien_timestamp] INFO: 2026-05-07 16:57:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:36 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:36 [thanhnien_timestamp] INFO: 2026-05-07 16:59:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:38 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:38 [thanhnien_timestamp] INFO: 2026-05-07 17:00:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:41 [thanhnien_timestamp] INFO: 2026-05-07 17:00:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:42 [scrapy.extensions.logstats] INFO: Crawled 16 pages (at 16 pages/min), scraped 1 items (at 1 items/min) 2026-05-07 10:46:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:43 [thanhnien_timestamp] INFO: 2026-05-07 17:00:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:45 [thanhnien_timestamp] INFO: 2026-05-07 17:04:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:48 [thanhnien_timestamp] INFO: 2026-05-07 17:16:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:46:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:46:51 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/chat/completions', 'files': None, 'json_data': {'messages': [{'role': 'user', 'content': 'Act as a content analysis tool. I will provide you with a piece of content, and your task is to extract relevant tags (keywords or phrases) that summarize the main topics, themes, or ideas present in the text. The tags should be concise, specific, and useful for categorization or search purposes. Ignore common filler words (e.g., \'the\', \'and\', \'is\') unless they are part of a specific concept or phrase. After analyzing the content, return the tags in a simple list format. Here is the content to analyze: Cuộc đối đầu với U.17 nữ Myanmar lúc 18 giờ 30 hôm nay được xem là trận "chung kết" của U.17 nữ Việt Nam tại vòng bảng giải U.17 nữ châu Á. Sau hai lượt trận, thầy trò HLV Okiyama Masahiko đang nắm trong tay quyền tự quyết trong cuộc đua giành vé vào tứ kết. Chỉ cần đánh bại U.17 nữ Myanmar, đội bóng trẻ Việt Nam gần như chắc chắn đi tiếp với tư cách một trong hai đội xếp thứ ba có thành tích tốt nhất, thậm chí còn có cơ hội chen chân vào vị trí nhì bảng nếu U.17 nữ Thái Lan thất bại trước chủ nhà U.17 nữ Trung Quốc. Dù để thua 0-3 trước U.17 nữ Trung Quốc ở lượt đấu thứ hai, U.17 nữ Việt Nam vẫn để lại nhiều tín hiệu tích cực. Trước đối thủ vượt trội về trình độ và thể hình, các học trò của HLV Masahiko cho thấy tinh thần thi đấu kiên cường, duy trì được sự kỷ luật chiến thuật và không buông xuôi cho đến những phút cuối. Thất bại đó không ảnh hưởng quá lớn đến tâm lý toàn đội bởi mục tiêu then chốt của U.17 nữ Việt Nam ngay từ đầu là cạnh tranh điểm số với U.17 nữ Thái Lan và U.17 nữ Myanmar.Hiện tại, Bảng A đang có cục diện như sau: U.17 nữ Trung Quốc dẫn đầu với 6 điểm, hiệu số +9, cầm chắc 1 suất vào tứ kết. U.17 nữ Thái Lan xếp thứ hai với 4 điểm, còn U.17 nữ Việt Nam đứng thứ ba với 1 điểm. U.17 nữ Myanmar chưa có điểm nào sau hai trận nhưng vẫn còn hy vọng mong manh để lật ngược tình thế. Điều đó khiến trận đấu tối nay hứa hẹn sẽ rất căng thẳng khi cả hai đội đều bước vào sân với quyết tâm cao nhất. Xét về tương quan lực lượng, U.17 nữ Việt Nam được đánh giá nhỉnh hơn ở khả năng tổ chức lối chơi. Những cầu thủ như Nguyễn Thị Minh Ánh được kỳ vọng sẽ đóng vai trò quan trọng trong việc tạo ra sự đột biến ở khu vực tấn công. Tiền đạo Minh Ánh thổ lộ: "U.17 nữ Myanmar là đội bóng có thể hình tốt nên toàn đội không được phép chủ quan. Mục tiêu của tôi là ghi bàn góp phần mang về chiến thắng cho đội U.17 nữ Việt Nam". Tuy nhiên, thách thức không hề nhỏ bởi U.17 nữ Myanmar là đội bóng sở hữu nền tảng thể lực tốt và đặc biệt nguy hiểm trong các tình huống phản công nhanh ở hai biên. Điều này đã được thể hiện rõ ở trận thua sát nút 0-1 trước U.17 nữ Thái Lan. Dù thất bại, U.17 nữ Myanmar khiến đối thủ gặp rất nhiều khó khăn bằng lối đá áp sát quyết liệt và tinh thần chiến đấu không khoan nhượng. Khi vẫn còn cơ hội đi tiếp trên lý thuyết, đội bóng trẻ Myanmar chắc chắn sẽ nhập cuộc với tâm thế không còn gì để mất. Muốn hoàn thành mục tiêu giành chiến thắng, U.17 nữ Việt Nam cần cải thiện khả năng tận dụng cơ hội. Trước một đối thủ nhiều khả năng chơi phòng ngự số đông, sự hiệu quả trong những pha dứt điểm sẽ mang ý nghĩa quyết định. Ngoài ra, hàng thủ cũng phải duy trì sự tập trung xuyên suốt trận đấu để hạn chế những pha phản công tốc độ từ đối phương. '}], 'model': 'gpt-4o-mini', 'max_tokens': 200, 'temperature': 0.3}} 2026-05-07 10:46:51 [openai._base_client] DEBUG: Sending HTTP Request: POST https://api.openai.com/v1/chat/completions 2026-05-07 10:46:51 [httpcore.connection] DEBUG: connect_tcp.started host='api.openai.com' port=443 local_address=None timeout=900 socket_options=None 2026-05-07 10:46:51 [httpcore.connection] DEBUG: connect_tcp.complete return_value= 2026-05-07 10:46:51 [httpcore.connection] DEBUG: start_tls.started ssl_context= server_hostname='api.openai.com' timeout=900 2026-05-07 10:46:51 [httpcore.connection] DEBUG: start_tls.complete return_value= 2026-05-07 10:46:51 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-05-07 10:46:51 [httpcore.http11] DEBUG: send_request_headers.complete 2026-05-07 10:46:51 [httpcore.http11] DEBUG: send_request_body.started request= 2026-05-07 10:46:51 [httpcore.http11] DEBUG: send_request_body.complete 2026-05-07 10:46:51 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-05-07 10:46:54 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Thu, 07 May 2026 10:46:54 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'CF-Ray', b'9f7fa4aa5a660721-HKG'), (b'CF-Cache-Status', b'DYNAMIC'), (b'Server', b'cloudflare'), (b'Strict-Transport-Security', b'max-age=31536000; includeSubDomains; preload'), (b'X-Content-Type-Options', b'nosniff'), (b'access-control-expose-headers', b'X-Request-ID'), (b'openai-organization', b'user-bmggli0qfnphtzkdehrnfdrn'), (b'openai-processing-ms', b'2574'), (b'openai-project', b'proj_AqBCEfNib7E5LbrMYDz2oklk'), (b'openai-version', b'2020-10-01'), (b'x-openai-proxy-wasm', b'v0.1'), (b'x-ratelimit-limit-requests', b'30000'), (b'x-ratelimit-limit-tokens', b'150000000'), (b'x-ratelimit-remaining-requests', b'29999'), (b'x-ratelimit-remaining-tokens', b'149998975'), (b'x-ratelimit-reset-requests', b'2ms'), (b'x-ratelimit-reset-tokens', b'0s'), (b'x-request-id', b'req_0d9bdff9fa1a46b2a785dabdc06b5d8f'), (b'set-cookie', b'__cf_bm=qlkqPv9UYibjB3hm9bJ.UZY4cFuYlFroySPZuRGu5zM-1778150811.2539308-1.0.1.1-1IFcLPzSoZqdq1ngSXzpnFQi8NwXJxFXeUVn8y7IBow5r9mMI2Mr.zMiz0m4AnjfD3cRj3M.dKSNGl7QbSDYzZBvdb15GG20E5ot2SNX49KDFSb0q5X3BUtIWjkMi4IB; HttpOnly; Secure; Path=/; Domain=api.openai.com; Expires=Thu, 07 May 2026 11:16:54 GMT'), (b'Content-Encoding', b'gzip'), (b'alt-svc', b'h3=":443"; ma=86400')]) 2026-05-07 10:46:54 [httpx] INFO: HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" 2026-05-07 10:46:54 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-05-07 10:46:54 [httpcore.http11] DEBUG: receive_response_body.complete 2026-05-07 10:46:54 [httpcore.http11] DEBUG: response_closed.started 2026-05-07 10:46:54 [httpcore.http11] DEBUG: response_closed.complete 2026-05-07 10:46:54 [openai._base_client] DEBUG: HTTP Response: POST https://api.openai.com/v1/chat/completions "200 OK" Headers({'date': 'Thu, 07 May 2026 10:46:54 GMT', 'content-type': 'application/json', 'transfer-encoding': 'chunked', 'connection': 'keep-alive', 'cf-ray': '9f7fa4aa5a660721-HKG', 'cf-cache-status': 'DYNAMIC', 'server': 'cloudflare', 'strict-transport-security': 'max-age=31536000; includeSubDomains; preload', 'x-content-type-options': 'nosniff', 'access-control-expose-headers': 'X-Request-ID', 'openai-organization': 'user-bmggli0qfnphtzkdehrnfdrn', 'openai-processing-ms': '2574', 'openai-project': 'proj_AqBCEfNib7E5LbrMYDz2oklk', 'openai-version': '2020-10-01', 'x-openai-proxy-wasm': 'v0.1', 'x-ratelimit-limit-requests': '30000', 'x-ratelimit-limit-tokens': '150000000', 'x-ratelimit-remaining-requests': '29999', 'x-ratelimit-remaining-tokens': '149998975', 'x-ratelimit-reset-requests': '2ms', 'x-ratelimit-reset-tokens': '0s', 'x-request-id': 'req_0d9bdff9fa1a46b2a785dabdc06b5d8f', 'set-cookie': '__cf_bm=qlkqPv9UYibjB3hm9bJ.UZY4cFuYlFroySPZuRGu5zM-1778150811.2539308-1.0.1.1-1IFcLPzSoZqdq1ngSXzpnFQi8NwXJxFXeUVn8y7IBow5r9mMI2Mr.zMiz0m4AnjfD3cRj3M.dKSNGl7QbSDYzZBvdb15GG20E5ot2SNX49KDFSb0q5X3BUtIWjkMi4IB; HttpOnly; Secure; Path=/; Domain=api.openai.com; Expires=Thu, 07 May 2026 11:16:54 GMT', 'content-encoding': 'gzip', 'alt-svc': 'h3=":443"; ma=86400'}) 2026-05-07 10:46:54 [openai._base_client] DEBUG: request_id: req_0d9bdff9fa1a46b2a785dabdc06b5d8f 2026-05-07 10:46:54 [thanhnien_timestamp] INFO: Min timestamp: 2026-05-07 17:25:00, Published timestamp: 2026-05-07 17:31:00 2026-05-07 10:46:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): tts-api:4444 2026-05-07 10:47:23 [urllib3.connectionpool] DEBUG: http://tts-api:4444 "POST /api/v2/text-to-speech HTTP/1.1" 200 411 2026-05-07 10:47:23 [scrapy.core.scraper] DEBUG: Scraped from <200 https://thanhnien.vn/u17-nu-viet-nam-0-0-u17-nu-myanmar-phai-thang-185260507154408328.htm> {'audio_url': 'https://lake-api.actable.ai/tts-data/njlntnzf-2026-05-07%2010%3A46%3A54.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=pmq7GsXVsXQZXqTM0hWE%2F20260507%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260507T104720Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5c2525e158f2aec1e88cf8bd72bd30e1654ad9a772615b69d3c0617846f16aa7', 'author': None, 'category': 'Thể thao', 'content': 'Cuộc đối đầu với U.17 nữ Myanmar lúc 18 giờ 30 hôm nay được xem ' 'là trận "chung kết" của U.17 nữ Việt Nam tại vòng bảng giải U.17 ' 'nữ châu Á. Sau hai lượt trận, thầy trò HLV Okiyama Masahiko đang ' 'nắm trong tay quyền tự quyết trong cuộc đua giành vé vào tứ kết. ' 'Chỉ cần đánh bại U.17 nữ Myanmar, đội bóng trẻ Việt Nam gần như ' 'chắc chắn đi tiếp với tư cách một trong hai đội xếp thứ ba có ' 'thành tích tốt nhất, thậm chí còn có cơ hội chen chân vào vị trí ' 'nhì bảng nếu U.17 nữ Thái Lan thất bại trước chủ nhà U.17 nữ ' 'Trung Quốc. Dù để thua 0-3 trước U.17 nữ Trung Quốc ở lượt đấu ' 'thứ hai, U.17 nữ Việt Nam vẫn để lại nhiều tín hiệu tích cực. ' 'Trước đối thủ vượt trội về trình độ và thể hình, các học trò của ' 'HLV Masahiko cho thấy tinh thần thi đấu kiên cường, duy trì được ' 'sự kỷ luật chiến thuật và không buông xuôi cho đến những phút ' 'cuối. Thất bại đó không ảnh hưởng quá lớn đến tâm lý toàn đội bởi ' 'mục tiêu then chốt của U.17 nữ Việt Nam ngay từ đầu là cạnh tranh ' 'điểm số với U.17 nữ Thái Lan và U.17 nữ Myanmar.Hiện tại, Bảng A ' 'đang có cục diện như sau: U.17 nữ Trung Quốc dẫn đầu với 6 điểm, ' 'hiệu số +9, cầm chắc 1 suất vào tứ kết. U.17 nữ Thái Lan xếp thứ ' 'hai với 4 điểm, còn U.17 nữ Việt Nam đứng thứ ba với 1 điểm. U.17 ' 'nữ Myanmar chưa có điểm nào sau hai trận nhưng vẫn còn hy vọng ' 'mong manh để lật ngược tình thế. Điều đó khiến trận đấu tối nay ' 'hứa hẹn sẽ rất căng thẳng khi cả hai đội đều bước vào sân với ' 'quyết tâm cao nhất. Xét về tương quan lực lượng, U.17 nữ Việt Nam ' 'được đánh giá nhỉnh hơn ở khả năng tổ chức lối chơi. Những cầu ' 'thủ như Nguyễn Thị Minh Ánh được kỳ vọng sẽ đóng vai trò quan ' 'trọng trong việc tạo ra sự đột biến ở khu vực tấn công. Tiền đạo ' 'Minh Ánh thổ lộ: "U.17 nữ Myanmar là đội bóng có thể hình tốt nên ' 'toàn đội không được phép chủ quan. Mục tiêu của tôi là ghi bàn ' 'góp phần mang về chiến thắng cho đội U.17 nữ Việt Nam". Tuy ' 'nhiên, thách thức không hề nhỏ bởi U.17 nữ Myanmar là đội bóng sở ' 'hữu nền tảng thể lực tốt và đặc biệt nguy hiểm trong các tình ' 'huống phản công nhanh ở hai biên. Điều này đã được thể hiện rõ ở ' 'trận thua sát nút 0-1 trước U.17 nữ Thái Lan. Dù thất bại, U.17 ' 'nữ Myanmar khiến đối thủ gặp rất nhiều khó khăn bằng lối đá áp ' 'sát quyết liệt và tinh thần chiến đấu không khoan nhượng. Khi vẫn ' 'còn cơ hội đi tiếp trên lý thuyết, đội bóng trẻ Myanmar chắc chắn ' 'sẽ nhập cuộc với tâm thế không còn gì để mất. Muốn hoàn thành mục ' 'tiêu giành chiến thắng, U.17 nữ Việt Nam cần cải thiện khả năng ' 'tận dụng cơ hội. Trước một đối thủ nhiều khả năng chơi phòng ngự ' 'số đông, sự hiệu quả trong những pha dứt điểm sẽ mang ý nghĩa ' 'quyết định. Ngoài ra, hàng thủ cũng phải duy trì sự tập trung ' 'xuyên suốt trận đấu để hạn chế những pha phản công tốc độ từ đối ' 'phương. ', 'description': 'U.17 nữ Việt Nam buộc phải thắng U.17 nữ Myanmar ở lượt trận ' 'cuối vòng bảng giải U.17 nữ châu Á tại Trung Quốc để cạnh ' 'tranh tấm vé vào tứ kết. ', 'html_content': '
\n' '\n' '

Cuộc đối đầu với U.17 nữ Myanmar lúc ' '18 giờ 30 hôm nay được xem là trận "chung kết" của U.17 nữ ' 'Việt Nam tại vòng bảng giải U.17 nữ châu Á. Sau hai lượt ' 'trận, thầy trò HLV Okiyama Masahiko đang nắm trong tay quyền ' 'tự quyết trong cuộc đua giành vé vào tứ kết. Chỉ cần đánh ' 'bại U.17 nữ Myanmar, đội bóng trẻ Việt Nam gần như chắc chắn ' 'đi tiếp với tư cách một trong hai đội xếp thứ ba có thành ' 'tích tốt nhất, thậm chí còn có cơ hội chen chân vào vị trí ' 'nhì bảng nếu U.17 nữ Thái Lan thất bại trước chủ nhà U.17 nữ ' 'Trung Quốc.

18 giờ 30 '
                 'hôm nay, U.17 nữ Việt Nam đấu U.17 nữ Myanmar: Phải thắng! - '
                 'Ảnh 1.

U.17 nữ Việt Nam dồn quyết tâm đánh bại U.17 ' 'nữ Myanmar ở lượt trận cuối vòng bảng giải U.17 châu Á diễn ' 'ra hôm nay tại Trung Quốc

ẢNH: VFF

Dù để thua 0-3 trước ' 'U.17 nữ Trung Quốc ở lượt đấu thứ hai, U.17 nữ Việt Nam vẫn ' 'để lại nhiều tín hiệu tích cực. Trước đối thủ vượt trội về ' 'trình độ và thể hình, các học trò của HLV Masahiko cho thấy ' 'tinh thần thi đấu kiên cường, duy trì được sự kỷ luật chiến ' 'thuật và không buông xuôi cho đến những phút cuối. Thất bại ' 'đó không ảnh hưởng quá lớn đến tâm lý toàn đội bởi mục tiêu ' 'then chốt của U.17 nữ Việt Nam ngay từ đầu là cạnh tranh ' 'điểm số với U.17 nữ Thái Lan và U.17 nữ Myanmar.Hiện tại, ' '

Bảng A đang có cục diện như sau: U.17 nữ Trung Quốc ' 'dẫn đầu với 6 điểm, hiệu số +9, cầm chắc 1 suất vào tứ kết. ' 'U.17 nữ Thái Lan xếp thứ hai với 4 điểm, còn U.17 nữ Việt ' 'Nam đứng thứ ba với 1 điểm. U.17 nữ Myanmar chưa có điểm nào ' 'sau hai trận nhưng vẫn còn hy vọng mong manh để lật ngược ' 'tình thế. Điều đó khiến trận đấu tối nay hứa hẹn sẽ rất căng ' 'thẳng khi cả hai đội đều bước vào sân với quyết tâm cao ' 'nhất.

18 giờ 30 '
                 'hôm nay, U.17 nữ Việt Nam đấu U.17 nữ Myanmar: Phải thắng! - '
                 'Ảnh 2.

U.17 nữ Việt ' 'Nam (trái) dồn quyết tâm săn vé vào tứ kết giải U.17 nữ châu ' 'Á

ẢNH: ' 'VFF

Xét về tương quan lực lượng, U.17 ' 'nữ Việt Nam được đánh giá nhỉnh hơn ở khả năng tổ chức lối ' 'chơi. Những cầu thủ như Nguyễn Thị Minh Ánh được kỳ vọng sẽ ' 'đóng vai trò quan trọng trong việc tạo ra sự đột biến ở khu ' 'vực tấn công. Tiền đạo Minh Ánh thổ lộ: "U.17 nữ Myanmar là ' 'đội bóng có thể hình tốt nên toàn đội không được phép chủ ' 'quan. Mục tiêu của tôi là ghi bàn góp phần mang về chiến ' 'thắng cho đội U.17 nữ Việt Nam".

U.17 nữ Việt Nam ' 'quyết đấu Myanmar, nuôi hy vọng vào tứ kết giải châu ' 'Á

Tuy nhiên, thách thức không hề nhỏ bởi ' 'U.17 nữ Myanmar là đội bóng sở hữu nền tảng thể lực tốt và ' 'đặc biệt nguy hiểm trong các tình huống phản công nhanh ở ' 'hai biên. Điều này đã được thể hiện rõ ở trận thua sát nút ' '0-1 trước U.17 nữ Thái Lan. Dù thất bại, U.17 nữ Myanmar ' 'khiến đối thủ gặp rất nhiều khó khăn bằng lối đá áp sát ' 'quyết liệt và tinh thần chiến đấu không khoan nhượng. Khi ' 'vẫn còn cơ hội đi tiếp trên lý thuyết, đội bóng trẻ Myanmar ' 'chắc chắn sẽ nhập cuộc với tâm thế không còn gì để ' 'mất.

Muốn hoàn thành mục tiêu giành chiến thắng, U.17 ' 'nữ Việt Nam cần cải thiện khả năng tận dụng cơ hội. Trước ' 'một đối thủ nhiều khả năng chơi phòng ngự số đông, sự hiệu ' 'quả trong những pha dứt điểm sẽ mang ý nghĩa quyết định. ' 'Ngoài ra, hàng thủ cũng phải duy trì sự tập trung xuyên suốt ' 'trận đấu để hạn chế những pha phản công tốc độ từ đối ' 'phương.

\n' '\n' '
', 'md_content': '\n' 'Cuộc đối đầu với U.17 nữ Myanmar lúc 18 giờ 30 hôm nay được ' 'xem là trận "chung kết" của U.17 nữ Việt Nam tại vòng bảng ' 'giải U.17 nữ châu Á. Sau hai lượt trận, thầy trò HLV Okiyama ' 'Masahiko đang nắm trong tay quyền tự quyết trong cuộc đua ' 'giành vé vào tứ kết. Chỉ cần đánh bại U.17 nữ Myanmar, đội ' 'bóng trẻ Việt Nam gần như chắc chắn đi tiếp với tư cách một ' 'trong hai đội xếp thứ ba có thành tích tốt nhất, thậm chí còn ' 'có cơ hội chen chân vào vị trí nhì bảng nếu U.17 nữ Thái Lan ' 'thất bại trước chủ nhà U.17 nữ Trung Quốc.\n' '\n' '![18 giờ 30 hôm nay, U.17 nữ Việt Nam đấu U.17 nữ Myanmar: ' 'Phải thắng! - Ảnh ' '1.](https://images2.thanhnien.vn/thumb_w/640/528068263637045248/2026/5/7/edit-68909155313035256953146743439586250172658808n-17781432014551276595256.jpeg)U.17 ' 'nữ Việt Nam dồn quyết tâm đánh bại U.17 nữ Myanmar ở lượt trận ' 'cuối vòng bảng giải U.17 châu Á diễn ra hôm nay tại Trung ' 'Quốc\n' '\n' 'ẢNH: VFF\n' '\n' 'Dù để thua 0-3 trước U.17 nữ Trung Quốc ở lượt đấu thứ hai, ' 'U.17 nữ Việt Nam vẫn để lại nhiều tín hiệu tích cực. Trước đối ' 'thủ vượt trội về trình độ và thể hình, các học trò của HLV ' 'Masahiko cho thấy tinh thần thi đấu kiên cường, duy trì được ' 'sự kỷ luật chiến thuật và không buông xuôi cho đến những phút ' 'cuối. Thất bại đó không ảnh hưởng quá lớn đến tâm lý toàn đội ' 'bởi mục tiêu then chốt của U.17 nữ Việt Nam ngay từ đầu là ' 'cạnh tranh điểm số với U.17 nữ Thái Lan và U.17 nữ ' 'Myanmar.Hiện tại, \n' '\n' 'Bảng A đang có cục diện như sau: U.17 nữ Trung Quốc dẫn đầu ' 'với 6 điểm, hiệu số +9, cầm chắc 1 suất vào tứ kết. U.17 nữ ' 'Thái Lan xếp thứ hai với 4 điểm, còn U.17 nữ Việt Nam đứng thứ ' 'ba với 1 điểm. U.17 nữ Myanmar chưa có điểm nào sau hai trận ' 'nhưng vẫn còn hy vọng mong manh để lật ngược tình thế. Điều đó ' 'khiến trận đấu tối nay hứa hẹn sẽ rất căng thẳng khi cả hai ' 'đội đều bước vào sân với quyết tâm cao nhất.\n' '\n' '![18 giờ 30 hôm nay, U.17 nữ Việt Nam đấu U.17 nữ Myanmar: ' 'Phải thắng! - Ảnh ' '2.](https://images2.thanhnien.vn/thumb_w/640/528068263637045248/2026/5/7/edit-68953804813014447388561037150329497638472133n-177814318161916634375.jpeg)U.17 ' 'nữ Việt Nam (trái) dồn quyết tâm săn vé vào tứ kết giải U.17 ' 'nữ châu Á\n' '\n' 'ẢNH: VFF\n' '\n' 'Xét về tương quan lực lượng, U.17 nữ Việt Nam được đánh giá ' 'nhỉnh hơn ở khả năng tổ chức lối chơi. Những cầu thủ như ' 'Nguyễn Thị Minh Ánh được kỳ vọng sẽ đóng vai trò quan trọng ' 'trong việc tạo ra sự đột biến ở khu vực tấn công. Tiền đạo ' 'Minh Ánh thổ lộ: "U.17 nữ Myanmar là đội bóng có thể hình tốt ' 'nên toàn đội không được phép chủ quan. Mục tiêu của tôi là ghi ' 'bàn góp phần mang về chiến thắng cho đội U.17 nữ Việt Nam". \n' '\n' 'U.17 nữ Việt Nam quyết đấu Myanmar, nuôi hy vọng vào tứ kết ' 'giải châu Á\n' '\n' 'Tuy nhiên, thách thức không hề nhỏ bởi U.17 nữ Myanmar là đội ' 'bóng sở hữu nền tảng thể lực tốt và đặc biệt nguy hiểm trong ' 'các tình huống phản công nhanh ở hai biên. Điều này đã được ' 'thể hiện rõ ở trận thua sát nút 0-1 trước U.17 nữ Thái Lan. Dù ' 'thất bại, U.17 nữ Myanmar khiến đối thủ gặp rất nhiều khó khăn ' 'bằng lối đá áp sát quyết liệt và tinh thần chiến đấu không ' 'khoan nhượng. Khi vẫn còn cơ hội đi tiếp trên lý thuyết, đội ' 'bóng trẻ Myanmar chắc chắn sẽ nhập cuộc với tâm thế không còn ' 'gì để mất.\n' '\n' 'Muốn hoàn thành mục tiêu giành chiến thắng, U.17 nữ Việt Nam ' 'cần cải thiện khả năng tận dụng cơ hội. Trước một đối thủ ' 'nhiều khả năng chơi phòng ngự số đông, sự hiệu quả trong những ' 'pha dứt điểm sẽ mang ý nghĩa quyết định. Ngoài ra, hàng thủ ' 'cũng phải duy trì sự tập trung xuyên suốt trận đấu để hạn chế ' 'những pha phản công tốc độ từ đối phương.\n' '\n' ' \n' '\n' '\n', 'published_date': datetime.date(2026, 5, 7), 'published_timestamp': datetime.datetime(2026, 5, 7, 17, 31), 'source': 'ThanhNien', 'tags': ['U.17 nữ Việt Nam', 'U.17 nữ Myanmar', 'giải U.17 nữ châu Á', 'trận chung kết', 'tứ kết', 'HLV Okiyama Masahiko', 'tinh thần thi đấu', 'kỷ luật chiến thuật', 'U.17 nữ Trung Quốc', 'U.17 nữ Thái Lan', 'điểm số', 'tổ chức lối chơi', 'Nguyễn Thị Minh Ánh', 'ghi bàn', 'phản công nhanh', 'phòng ngự', 'cải thiện cơ hội', 'hàng thủ', 'quyết tâm', 'cục diện bảng A'], 'title': 'U.17 nữ Việt Nam 0-0 U.17 nữ Myanmar: Phải thắng !', 'url': 'https://thanhnien.vn/u17-nu-viet-nam-0-0-u17-nu-myanmar-phai-thang-185260507154408328.htm', 'voice': 'HN-Nam-1-BL'} 2026-05-07 10:47:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:47:23 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/chat/completions', 'files': None, 'json_data': {'messages': [{'role': 'user', 'content': 'Act as a content analysis tool. I will provide you with a piece of content, and your task is to extract relevant tags (keywords or phrases) that summarize the main topics, themes, or ideas present in the text. The tags should be concise, specific, and useful for categorization or search purposes. Ignore common filler words (e.g., \'the\', \'and\', \'is\') unless they are part of a specific concept or phrase. After analyzing the content, return the tags in a simple list format. Here is the content to analyze: Liên quan đến vụ bé B.T.H (4 tuổi, quê Tuyên Quang) tử vong vì bị mẹ và nhân tình của mẹ bạo hành, Công an Hà Nội đã khởi tố Nguyễn Minh Hiệp (22 tuổi, quê xã Thanh Lâm, Ninh Bình) về tội giết người . Cảnh sát cũng đang làm rõ hành vi của Bàn Thị Tâm (20 tuổi, quê xã Bắc Quang, Tuyên Quang, là mẹ bé H.) để xử lý theo quy định. Tại cơ quan điều tra, Tâm khai thời điểm sống chung với Hiệp thì đang mang thai, thường mệt mỏi nên không trực tiếp chăm con gái riêng mà để Hiệp lo việc vệ sinh, tắm rửa cho bé. Tâm khai trong một đêm, khi đang ngủ thì bé H. làm bẩn giường nên Tâm và Hiệp gọi bé dậy rồi đánh. Sau đó, Tâm kiểm tra thì phát hiện trên cơ thể bé H. có nhiều vết bầm tím. Ngoài lần này, Công an Hà Nội xác định Tâm và Hiệp nhiều lần bạo hành , đánh đập, thậm chí bỏ đói bé H. dài ngày. Lần gần nhất, chiều 3.5, Hiệp và Tâm đi chơi về thì thấy bé H. chuẩn bị lấy bánh, kẹo ra ăn. Cho rằng con gái ăn vụng, Tâm đã lấy dép đánh liên tiếp nhiều lần vào vùng mặt và đầu bé. Đánh xong, Tâm bắt con gái đứng ở góc nhà. Thấy bé H. đi vệ sinh tại góc nhà, Tâm tiếp tục đánh vào mặt rồi bảo con vào tắm. Trong nhà vệ sinh, thấy bé H. nghịch, Hiệp vào chửi bới rồi dùng chân kẹp chặt ở má H., lấy vòi hoa sen xịt nước liên tục vào miệng, mũi nạn nhân. Quá trình Hiệp hành hạ con, Tâm chứng kiến nhưng không can ngăn. Một lúc sau, thấy bé H. có biểu hiện bất thường thì Tâm và Hiệp mới đưa vào Bệnh viện E cấp cứu. Tuy nhiên, cháu bé không qua khỏi. Tại cơ quan điều tra, Tâm thừa nhận hành vi của mình và người tình là sai trái, vi phạm pháp luật. "Tôi cảm thấy không xứng đáng làm mẹ của cháu", Tâm nói và bày tỏ hối hận, mong con gái được siêu thoát.'}], 'model': 'gpt-4o-mini', 'max_tokens': 200, 'temperature': 0.3}} 2026-05-07 10:47:23 [openai._base_client] DEBUG: Sending HTTP Request: POST https://api.openai.com/v1/chat/completions 2026-05-07 10:47:23 [httpcore.connection] DEBUG: connect_tcp.started host='api.openai.com' port=443 local_address=None timeout=900 socket_options=None 2026-05-07 10:47:23 [httpcore.connection] DEBUG: connect_tcp.complete return_value= 2026-05-07 10:47:23 [httpcore.connection] DEBUG: start_tls.started ssl_context= server_hostname='api.openai.com' timeout=900 2026-05-07 10:47:23 [httpcore.connection] DEBUG: start_tls.complete return_value= 2026-05-07 10:47:23 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-05-07 10:47:23 [httpcore.http11] DEBUG: send_request_headers.complete 2026-05-07 10:47:23 [httpcore.http11] DEBUG: send_request_body.started request= 2026-05-07 10:47:23 [httpcore.http11] DEBUG: send_request_body.complete 2026-05-07 10:47:23 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-05-07 10:47:26 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Thu, 07 May 2026 10:47:26 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'CF-Ray', b'9f7fa5766e2784d6-HKG'), (b'CF-Cache-Status', b'DYNAMIC'), (b'Server', b'cloudflare'), (b'Strict-Transport-Security', b'max-age=31536000; includeSubDomains; preload'), (b'X-Content-Type-Options', b'nosniff'), (b'access-control-expose-headers', b'X-Request-ID'), (b'openai-organization', b'user-bmggli0qfnphtzkdehrnfdrn'), (b'openai-processing-ms', b'2053'), (b'openai-project', b'proj_AqBCEfNib7E5LbrMYDz2oklk'), (b'openai-version', b'2020-10-01'), (b'x-openai-proxy-wasm', b'v0.1'), (b'x-ratelimit-limit-requests', b'30000'), (b'x-ratelimit-limit-tokens', b'150000000'), (b'x-ratelimit-remaining-requests', b'29999'), (b'x-ratelimit-remaining-tokens', b'149999335'), (b'x-ratelimit-reset-requests', b'2ms'), (b'x-ratelimit-reset-tokens', b'0s'), (b'x-request-id', b'req_e1ef4934bf114728bfbe2c78078b39b6'), (b'set-cookie', b'__cf_bm=f9gH9h5sfhO2JjOBDXvLhSsD1XcVD25mUwZCr3hF90g-1778150843.9102035-1.0.1.1-VTrF..uc81.BSyxQJUwE_ftbnV0KAWdQWdbdRIHEpuc8BZ.RmLDxGHE1hrSKlXEeFrD9W4YMuCu43IhaovlC.Su1er4DkzghiTMb2XILYKHZCP_h_mM6pc2MrD8Fk2mC; HttpOnly; Secure; Path=/; Domain=api.openai.com; Expires=Thu, 07 May 2026 11:17:26 GMT'), (b'Content-Encoding', b'gzip'), (b'alt-svc', b'h3=":443"; ma=86400')]) 2026-05-07 10:47:26 [httpx] INFO: HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" 2026-05-07 10:47:26 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-05-07 10:47:26 [httpcore.http11] DEBUG: receive_response_body.complete 2026-05-07 10:47:26 [httpcore.http11] DEBUG: response_closed.started 2026-05-07 10:47:26 [httpcore.http11] DEBUG: response_closed.complete 2026-05-07 10:47:26 [openai._base_client] DEBUG: HTTP Response: POST https://api.openai.com/v1/chat/completions "200 OK" Headers({'date': 'Thu, 07 May 2026 10:47:26 GMT', 'content-type': 'application/json', 'transfer-encoding': 'chunked', 'connection': 'keep-alive', 'cf-ray': '9f7fa5766e2784d6-HKG', 'cf-cache-status': 'DYNAMIC', 'server': 'cloudflare', 'strict-transport-security': 'max-age=31536000; includeSubDomains; preload', 'x-content-type-options': 'nosniff', 'access-control-expose-headers': 'X-Request-ID', 'openai-organization': 'user-bmggli0qfnphtzkdehrnfdrn', 'openai-processing-ms': '2053', 'openai-project': 'proj_AqBCEfNib7E5LbrMYDz2oklk', 'openai-version': '2020-10-01', 'x-openai-proxy-wasm': 'v0.1', 'x-ratelimit-limit-requests': '30000', 'x-ratelimit-limit-tokens': '150000000', 'x-ratelimit-remaining-requests': '29999', 'x-ratelimit-remaining-tokens': '149999335', 'x-ratelimit-reset-requests': '2ms', 'x-ratelimit-reset-tokens': '0s', 'x-request-id': 'req_e1ef4934bf114728bfbe2c78078b39b6', 'set-cookie': '__cf_bm=f9gH9h5sfhO2JjOBDXvLhSsD1XcVD25mUwZCr3hF90g-1778150843.9102035-1.0.1.1-VTrF..uc81.BSyxQJUwE_ftbnV0KAWdQWdbdRIHEpuc8BZ.RmLDxGHE1hrSKlXEeFrD9W4YMuCu43IhaovlC.Su1er4DkzghiTMb2XILYKHZCP_h_mM6pc2MrD8Fk2mC; HttpOnly; Secure; Path=/; Domain=api.openai.com; Expires=Thu, 07 May 2026 11:17:26 GMT', 'content-encoding': 'gzip', 'alt-svc': 'h3=":443"; ma=86400'}) 2026-05-07 10:47:26 [openai._base_client] DEBUG: request_id: req_e1ef4934bf114728bfbe2c78078b39b6 2026-05-07 10:47:26 [thanhnien_timestamp] INFO: Min timestamp: 2026-05-07 17:25:00, Published timestamp: 2026-05-07 17:33:00 2026-05-07 10:47:26 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): tts-api:4444 2026-05-07 10:47:41 [urllib3.connectionpool] DEBUG: http://tts-api:4444 "POST /api/v2/text-to-speech HTTP/1.1" 200 411 2026-05-07 10:47:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://thanhnien.vn/vu-be-gai-4-tuoi-bi-bao-hanh-tu-vong-toi-khong-xung-dang-lam-me-185260507171205162.htm> {'audio_url': 'https://lake-api.actable.ai/tts-data/woqevzoq-2026-05-07%2010%3A47%3A26.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=pmq7GsXVsXQZXqTM0hWE%2F20260507%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260507T104740Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6f04320041286d049e80780c1623696f2368ec184efb20f20f1ddced7cb6e1d6', 'author': None, 'category': 'Thời sự', 'content': 'Liên quan đến vụ bé B.T.H (4 tuổi, quê Tuyên Quang) tử vong vì bị ' 'mẹ và nhân tình của mẹ bạo hành, Công an Hà Nội đã khởi tố Nguyễn ' 'Minh Hiệp (22 tuổi, quê xã Thanh Lâm, Ninh Bình) về tội giết ' 'người . Cảnh sát cũng đang làm rõ hành vi của Bàn Thị Tâm (20 ' 'tuổi, quê xã Bắc Quang, Tuyên Quang, là mẹ bé H.) để xử lý theo ' 'quy định. Tại cơ quan điều tra, Tâm khai thời điểm sống chung với ' 'Hiệp thì đang mang thai, thường mệt mỏi nên không trực tiếp chăm ' 'con gái riêng mà để Hiệp lo việc vệ sinh, tắm rửa cho bé. Tâm ' 'khai trong một đêm, khi đang ngủ thì bé H. làm bẩn giường nên Tâm ' 'và Hiệp gọi bé dậy rồi đánh. Sau đó, Tâm kiểm tra thì phát hiện ' 'trên cơ thể bé H. có nhiều vết bầm tím. Ngoài lần này, Công an Hà ' 'Nội xác định Tâm và Hiệp nhiều lần bạo hành , đánh đập, thậm chí ' 'bỏ đói bé H. dài ngày. Lần gần nhất, chiều 3.5, Hiệp và Tâm đi ' 'chơi về thì thấy bé H. chuẩn bị lấy bánh, kẹo ra ăn. Cho rằng con ' 'gái ăn vụng, Tâm đã lấy dép đánh liên tiếp nhiều lần vào vùng mặt ' 'và đầu bé. Đánh xong, Tâm bắt con gái đứng ở góc nhà. Thấy bé H. ' 'đi vệ sinh tại góc nhà, Tâm tiếp tục đánh vào mặt rồi bảo con vào ' 'tắm. Trong nhà vệ sinh, thấy bé H. nghịch, Hiệp vào chửi bới rồi ' 'dùng chân kẹp chặt ở má H., lấy vòi hoa sen xịt nước liên tục vào ' 'miệng, mũi nạn nhân. Quá trình Hiệp hành hạ con, Tâm chứng kiến ' 'nhưng không can ngăn. Một lúc sau, thấy bé H. có biểu hiện bất ' 'thường thì Tâm và Hiệp mới đưa vào Bệnh viện E cấp cứu. Tuy ' 'nhiên, cháu bé không qua khỏi. Tại cơ quan điều tra, Tâm thừa ' 'nhận hành vi của mình và người tình là sai trái, vi phạm pháp ' 'luật. "Tôi cảm thấy không xứng đáng làm mẹ của cháu", Tâm nói và ' 'bày tỏ hối hận, mong con gái được siêu thoát.', 'description': 'Bàn Thị Tâm thừa nhận đã cùng nhân tình đánh con gái riêng 4 ' 'tuổi khiến bé tử vong. Tại cơ quan điều tra, Tâm nói rằng ' "'tôi không xứng đáng làm mẹ của cháu'.", 'html_content': '
\n' '\n' '
\n' '\n' ' ' '

Liên quan đến vụ bé B.T.H (4 tuổi, quê Tuyên Quang) tử ' 'vong vì bị mẹ và nhân tình của mẹ bạo hành, Công an Hà Nội ' 'đã khởi tố Nguyễn Minh Hiệp (22 tuổi, quê xã Thanh Lâm, Ninh ' 'Bình) về tội giết người. Cảnh ' 'sát cũng đang làm rõ hành vi của Bàn Thị Tâm (20 tuổi, quê ' 'xã Bắc Quang, Tuyên Quang, là mẹ bé H.) để xử lý theo quy ' 'định.

Tại cơ quan điều tra, Tâm khai thời điểm sống ' 'chung với Hiệp thì đang mang thai, thường mệt mỏi nên không ' 'trực tiếp chăm con gái riêng mà để Hiệp lo việc vệ sinh, tắm ' 'rửa cho bé.

Nói '
                 '‘không xứng đáng làm mẹ’ sau khi cùng nhân tình đánh con dẫn '
                 'đến tử vong - Ảnh 1.

Bàn Thị Tâm ' 'và Nguyễn Minh Hiệp tại cơ quan điều ' 'tra

ẢNH: CÔNG AN CUNG ' 'CẤP

Tâm khai trong một đêm, khi đang ' 'ngủ thì bé H. làm bẩn giường nên Tâm và Hiệp gọi bé dậy rồi ' 'đánh. Sau đó, Tâm kiểm tra thì phát hiện trên cơ thể bé H. ' 'có nhiều vết bầm tím.

Ngoài lần này, Công an Hà Nội ' 'xác định Tâm và Hiệp nhiều lần bạo hành, đánh đập, ' 'thậm chí bỏ đói bé H. dài ngày.

Lần gần nhất, chiều ' '3.5, Hiệp và Tâm đi chơi về thì thấy bé H. chuẩn bị lấy ' 'bánh, kẹo ra ăn. Cho rằng con gái ăn vụng, Tâm đã lấy dép ' 'đánh liên tiếp nhiều lần vào vùng mặt và đầu bé. Đánh xong, ' 'Tâm bắt con gái đứng ở góc nhà.

Thấy bé H. đi vệ sinh ' 'tại góc nhà, Tâm tiếp tục đánh vào mặt rồi bảo con vào ' 'tắm.

Bạo hành con gái 4 ' 'tuổi của người tình dẫn đến tử vong ' '

Trong nhà vệ sinh, thấy bé H. nghịch, ' 'Hiệp vào chửi bới rồi dùng chân kẹp chặt ở má H., lấy vòi ' 'hoa sen xịt nước liên tục vào miệng, mũi nạn nhân. Quá trình ' 'Hiệp hành hạ con, Tâm chứng kiến nhưng không can ' 'ngăn.

Một lúc sau, thấy bé H. có biểu hiện bất thường ' 'thì Tâm và Hiệp mới đưa vào Bệnh viện E cấp ' 'cứu. Tuy nhiên, cháu bé không qua khỏi.

Tại cơ quan ' 'điều tra, Tâm thừa nhận hành vi của mình và người tình là ' 'sai trái, vi phạm pháp luật.

"Tôi cảm thấy không xứng ' 'đáng làm mẹ của cháu", Tâm nói và bày tỏ hối hận, mong con ' 'gái được siêu thoát.

\n' ' \n' '\n' '\n' ' \n' '
\n' ' \n' '\n' ' \n' ' \n' ' \n' ' \n' ' \n' '\n' '
\n' '\n' '
', 'md_content': '\n' '\n' 'Liên quan đến vụ bé B.T.H (4 tuổi, quê Tuyên Quang) tử vong vì ' 'bị mẹ và nhân tình của mẹ bạo hành, Công an Hà Nội đã khởi tố ' 'Nguyễn Minh Hiệp (22 tuổi, quê xã Thanh Lâm, Ninh Bình) về tội ' '[giết ' 'người](https://thanhnien.vn/ke-giet-nguoi-hang-loat-thu-toi-phan-xac-8-phu-nu-o-my-18526040907352389.htm ' '"giết người"). Cảnh sát cũng đang làm rõ hành vi của Bàn Thị ' 'Tâm (20 tuổi, quê xã Bắc Quang, Tuyên Quang, là mẹ bé H.) để ' 'xử lý theo quy định.\n' '\n' 'Tại cơ quan điều tra, Tâm khai thời điểm sống chung với Hiệp ' 'thì đang mang thai, thường mệt mỏi nên không trực tiếp chăm ' 'con gái riêng mà để Hiệp lo việc vệ sinh, tắm rửa cho bé.\n' '\n' '![Nói ‘không xứng đáng làm mẹ’ sau khi cùng nhân tình đánh con ' 'dẫn đến tử vong - Ảnh ' '1.](https://images2.thanhnien.vn/thumb_w/640/528068263637045248/2026/5/7/img2234-1778138275599236855341.jpeg)Bàn ' 'Thị Tâm và Nguyễn Minh Hiệp tại cơ quan điều tra\n' '\n' 'ẢNH: CÔNG AN CUNG CẤP\n' '\n' 'Tâm khai trong một đêm, khi đang ngủ thì bé H. làm bẩn giường ' 'nên Tâm và Hiệp gọi bé dậy rồi đánh. Sau đó, Tâm kiểm tra thì ' 'phát hiện trên cơ thể bé H. có nhiều vết bầm tím.\n' '\n' 'Ngoài lần này, Công an Hà Nội xác định Tâm và Hiệp nhiều lần ' '[bạo ' 'hành](https://thanhnien.vn/toan-canh-17h-khoi-to-ke-bao-hanh-con-cua-nguoi-tinh-den-chet-bat-chu-tich-cap-bang-tieng-anh-gia-185260507162728046.htm ' '"bạo hành"), đánh đập, thậm chí bỏ đói bé H. dài ngày.\n' '\n' 'Lần gần nhất, chiều 3.5, Hiệp và Tâm đi chơi về thì thấy bé H. ' 'chuẩn bị lấy bánh, kẹo ra ăn. Cho rằng con gái ăn vụng, Tâm đã ' 'lấy dép đánh liên tiếp nhiều lần vào vùng mặt và đầu bé. Đánh ' 'xong, Tâm bắt con gái đứng ở góc nhà.\n' '\n' 'Thấy bé H. đi vệ sinh tại góc nhà, Tâm tiếp tục đánh vào mặt ' 'rồi bảo con vào tắm.\n' '\n' 'Bạo hành con gái 4 tuổi của người tình dẫn đến tử vong \n' '\n' 'Trong nhà vệ sinh, thấy bé H. nghịch, Hiệp vào chửi bới rồi ' 'dùng chân kẹp chặt ở má H., lấy vòi hoa sen xịt nước liên tục ' 'vào miệng, mũi nạn nhân. Quá trình Hiệp hành hạ con, Tâm chứng ' 'kiến nhưng không can ngăn.\n' '\n' 'Một lúc sau, thấy bé H. có biểu hiện bất thường thì Tâm và ' 'Hiệp mới đưa vào [Bệnh viện ' 'E](https://thanhnien.vn/de-xuat-sap-nhap-benh-vien-e-vao-benh-vien-bach-mai-185251011183342425.htm ' '"Bệnh viện E") cấp cứu. Tuy nhiên, cháu bé không qua khỏi.\n' '\n' 'Tại cơ quan điều tra, Tâm thừa nhận hành vi của mình và người ' 'tình là sai trái, vi phạm pháp luật.\n' '\n' '"Tôi cảm thấy không xứng đáng làm mẹ của cháu", Tâm nói và bày ' 'tỏ hối hận, mong con gái được siêu thoát.\n' '\n' '\n' '\n' ' //Chèn ads giữa bài\n' ' (runinit = window.runinit || []).push(function () {\n' ' //Nếu k chạy ads thì return\n' " if (typeof \\_chkPrLink != 'undefined' && \\_chkPrLink)\n" ' return;\n' '\n' '\n' ' var mutexAds = \'\';\n' ' var content = $(\'[data-role="content"]\');\n' ' if (content.length > 0) {\n' ' var childNodes = content[0].childNodes;\n' ' for (i = 0; i < childNodes.length; i++) {\n' ' var childNode = childNodes[i];\n' '\n' ' var isPhotoOrVideo = false;\n' " if (childNode.nodeName.toLowerCase() == 'div') {\n" ' // kiem tra xem co la anh khong?\n' " var type = $(childNode).attr('class') + '';\n" '\n' " if (type.indexOf('VCSortableInPreviewMode') >= 0) {\n" ' isPhotoOrVideo = true;\n' ' }\n' ' }\n' '\n' ' try {\n' ' if ((i >= childNodes.length / 2 - 1) && (i < ' 'childNodes.length / 2) && !isPhotoOrVideo) {\n' ' if (i <= childNodes.length - 3) {\n' ' childNode.after(htmlToElement(mutexAds));\n' ' arfAsync.push("l2srqb41");\n' ' }\n' ' break;\n' ' }\n' ' }\n' ' catch (e) { }\n' ' }\n' ' }\n' ' });\n' ' function htmlToElement(html) {\n' " var template = document.createElement('template');\n" ' template.innerHTML = html;\n' ' return template.content.firstChild;\n' ' }\n' '\n' '\n' '\n' ' if (window.pageSettings && pageSettings.allow3rd && (typeof ' "window.\\_isAdsHidden === 'undefined' || " '!window.\\_isAdsHidden)) {\n' ' if (!laNuocNgoai) {\n' ' (function (w, q) {\n' ' w[q] = w[q] || [];\n' ' w[q].push(["\\_mgc.load"]);\n' ' })(window, "\\_mgq");\n' ' }\n' ' }\n' ' \n' '\n' '\n' ' (function() {\n' ' if (!(window.pageSettings && pageSettings.allow3rd && (typeof ' "window.\\_isAdsHidden === 'undefined' || " '!window.\\_isAdsHidden))) return;\n' " if (typeof window.laNuocNgoai === 'undefined' || " '!window.laNuocNgoai) return; // chỉ chạy khi laNuocNgoai true\n' '\n' " var containerSelector = 'div.detail-cmain';\n" ' var root = document.querySelector(containerSelector);\n' ' if (!root) return;\n' '\n' ' // Thu thập figure + p (p không nằm trong figure)\n' " var figures = Array.from(root.querySelectorAll('figure'));\n" ' var paragraphs = ' "Array.from(root.querySelectorAll('p')).filter(function(p){ " "return !p.closest('figure'); });\n" ' var elements = figures.concat(paragraphs); // NodeList vốn đã ' 'theo DOM order => không cần sort\n' ' if (!elements.length) return;\n' '\n' ' var target = elements[Math.floor(elements.length / 2)]; // ' 'giữa bài\n' ' if (!target || !target.parentNode) return;\n' '\n' " var newDiv = document.createElement('div');\n" " newDiv.id = 'taboola-mid-article-widget';\n" ' target.parentNode.insertBefore(newDiv, target.nextSibling);\n' '\n' ' window.\\_taboola = window.\\_taboola || [];\n' ' window.\\_taboola.push({\n' " mode: 'thumbnails-4x1',\n" " container: 'taboola-mid-article-widget',\n" " placement: 'Mid Article Widget',\n" " target\\_type: 'mix'\n" ' });\n' ' })();\n' ' \n' '\n', 'published_date': datetime.date(2026, 5, 7), 'published_timestamp': datetime.datetime(2026, 5, 7, 17, 33), 'source': 'ThanhNien', 'tags': ['Bạo hành trẻ em', 'Tử vong', 'Nguyễn Minh Hiệp', 'Bàn Thị Tâm', 'Giết người', 'Điều tra', 'Tuyên Quang', 'Ninh Bình', 'Hành vi bạo lực', 'Chăm sóc trẻ', 'Bệnh viện E', 'Hối hận', 'Pháp luật', 'Bạo lực gia đình', 'Tình trạng sức khỏe trẻ em'], 'title': "Vụ bé gái 4 tuổi bị bạo hành tử vong: 'Tôi không xứng đáng làm mẹ’", 'url': 'https://thanhnien.vn/vu-be-gai-4-tuoi-bi-bao-hanh-tu-vong-toi-khong-xung-dang-lam-me-185260507171205162.htm', 'voice': 'SG-Nam-1-TM'} 2026-05-07 10:47:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:47:41 [thanhnien_timestamp] INFO: 2026-05-07 17:42:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:47:42 [scrapy.extensions.logstats] INFO: Crawled 22 pages (at 6 pages/min), scraped 3 items (at 2 items/min) 2026-05-07 10:47:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://thanhnien.vn/tin-moi.htm) 2026-05-07 10:47:44 [thanhnien_timestamp] INFO: 2026-05-07 17:44:00 not in 2026-05-07 17:25:00 to 2026-05-07 17:40:00 2026-05-07 10:47:44 [scrapy.core.engine] INFO: Closing spider (finished) 2026-05-07 10:47:44 [boto3.s3.transfer] DEBUG: Opting out of CRT Transfer Manager. Preferred client: auto, CRT available: False, Instance Optimized: False. 2026-05-07 10:47:44 [boto3.s3.transfer] DEBUG: Using default client. pid: 30007, thread: 140162117843768 2026-05-07 10:47:44 [s3transfer.utils] DEBUG: Acquiring 0 2026-05-07 10:47:44 [s3transfer.tasks] DEBUG: UploadSubmissionTask(transfer_id=0, {'transfer_future': }) about to wait for the following futures [] 2026-05-07 10:47:44 [s3transfer.tasks] DEBUG: UploadSubmissionTask(transfer_id=0, {'transfer_future': }) done waiting for dependent futures 2026-05-07 10:47:44 [s3transfer.tasks] DEBUG: Executing task UploadSubmissionTask(transfer_id=0, {'transfer_future': }) with kwargs {'client': , 'config': , 'osutil': , 'request_executor': , 'transfer_future': } 2026-05-07 10:47:44 [s3transfer.futures] DEBUG: Submitting task PutObjectTask(transfer_id=0, {'bucket': 'dagster-output-data', 'key': 'thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl', 'extra_args': {}}) to executor for transfer request: 0. 2026-05-07 10:47:44 [s3transfer.utils] DEBUG: Acquiring 0 2026-05-07 10:47:44 [s3transfer.tasks] DEBUG: PutObjectTask(transfer_id=0, {'bucket': 'dagster-output-data', 'key': 'thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl', 'extra_args': {}}) about to wait for the following futures [] 2026-05-07 10:47:44 [s3transfer.utils] DEBUG: Releasing acquire 0/None 2026-05-07 10:47:44 [s3transfer.tasks] DEBUG: PutObjectTask(transfer_id=0, {'bucket': 'dagster-output-data', 'key': 'thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl', 'extra_args': {}}) done waiting for dependent futures 2026-05-07 10:47:44 [s3transfer.tasks] DEBUG: Executing task PutObjectTask(transfer_id=0, {'bucket': 'dagster-output-data', 'key': 'thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl', 'extra_args': {}}) with kwargs {'client': , 'fileobj': , 'bucket': 'dagster-output-data', 'key': 'thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl', 'extra_args': {}} 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler > 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler > 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-endpoint-resolution.s3: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-endpoint-resolution.s3: calling handler > 2026-05-07 10:47:44 [botocore.regions] DEBUG: Calling endpoint provider with parameters: {'Bucket': 'dagster-output-data', 'Region': 'us-east-1', 'UseFIPS': False, 'UseDualStack': False, 'Endpoint': 'https://lake-api.actable.ai/', 'ForcePathStyle': True, 'Accelerate': False, 'UseGlobalEndpoint': True, 'Key': 'thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl', 'DisableMultiRegionAccessPoints': False, 'UseArnRegion': True} 2026-05-07 10:47:44 [botocore.regions] DEBUG: Endpoint provider result: https://lake-api.actable.ai/dagster-output-data 2026-05-07 10:47:44 [botocore.regions] DEBUG: Selecting from endpoint provider's list of auth schemes: "sigv4". User selected auth scheme is: "None" 2026-05-07 10:47:44 [botocore.regions] DEBUG: Selected auth type "v4" as "v4" with signing context params: {'region': 'us-east-1', 'signing_name': 's3', 'disableDoubleEncoding': True} 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.handlers] DEBUG: Adding expect 100 continue header to request. 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler > 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.endpoint] DEBUG: Making request for OperationModel(name=PutObject) with params: {'url_path': '/thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl', 'query_string': {}, 'method': 'PUT', 'headers': {'User-Agent': 'Boto3/1.34.57 md/Botocore#1.34.162 ua/2.0 os/linux#5.15.0-164-generic md/arch#x86_64 lang/python#3.11.13 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.34.162', 'Content-MD5': 'u8+eSIzyEVDMre6lOexR/Q==', 'Expect': '100-continue'}, 'body': , 'auth_path': '/dagster-output-data/thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl', 'url': 'https://lake-api.actable.ai/dagster-output-data/thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl', 'context': {'client_region': 'us-east-1', 'client_config': , 'has_streaming_input': True, 'auth_type': 'v4', 's3_redirect': {'redirected': False, 'bucket': 'dagster-output-data', 'params': {'Bucket': 'dagster-output-data', 'Key': 'thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl', 'Body': }}, 'input_params': {'Bucket': 'dagster-output-data', 'Key': 'thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl'}, 'signing': {'region': 'us-east-1', 'signing_name': 's3', 'disableDoubleEncoding': True}, 'endpoint_properties': {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'us-east-1'}]}}} 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler > 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event choose-signer.s3.PutObject: calling handler > 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event choose-signer.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-sign.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event before-sign.s3.PutObject: calling handler > 2026-05-07 10:47:44 [botocore.auth] DEBUG: Calculating signature using v4 auth. 2026-05-07 10:47:44 [botocore.auth] DEBUG: CanonicalRequest: PUT /dagster-output-data/thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl content-md5:u8+eSIzyEVDMre6lOexR/Q== host:lake-api.actable.ai x-amz-content-sha256:UNSIGNED-PAYLOAD x-amz-date:20260507T104744Z content-md5;host;x-amz-content-sha256;x-amz-date UNSIGNED-PAYLOAD 2026-05-07 10:47:44 [botocore.auth] DEBUG: StringToSign: AWS4-HMAC-SHA256 20260507T104744Z 20260507/us-east-1/s3/aws4_request e13fe63855b6eed7354237a0ac76639e0d3c6e21da65cb9ad1ced032c3dcddbd 2026-05-07 10:47:44 [botocore.auth] DEBUG: Signature: 283b3e1537680373c515de05f50224307f8e5f47f00043832b3e7ed9139d7bec 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.endpoint] DEBUG: Sending http request: 2026-05-07 10:47:44 [botocore.httpsession] DEBUG: Certificate path: /usr/local/lib/python3.11/site-packages/certifi/cacert.pem 2026-05-07 10:47:44 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): lake-api.actable.ai:443 2026-05-07 10:47:44 [botocore.awsrequest] DEBUG: Waiting for 100 Continue response. 2026-05-07 10:47:44 [botocore.awsrequest] DEBUG: 100 Continue response seen, now sending request body. 2026-05-07 10:47:44 [urllib3.connectionpool] DEBUG: https://lake-api.actable.ai:443 "PUT /dagster-output-data/thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl HTTP/1.1" 200 0 2026-05-07 10:47:44 [botocore.parsers] DEBUG: Response headers: {'Server': 'nginx/1.18.0 (Ubuntu)', 'Date': 'Thu, 07 May 2026 10:47:44 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Accept-Ranges': 'bytes', 'ETag': '"bbcf9e488cf21150ccadeea539ec51fd"', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains', 'Vary': 'Origin, Accept-Encoding', 'X-Amz-Bucket-Region': 'us-east-1', 'X-Amz-Id-2': 'dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8', 'X-Amz-Request-Id': '18AD42CA4B73CA25', 'X-Content-Type-Options': 'nosniff', 'X-Ratelimit-Limit': '3162', 'X-Ratelimit-Remaining': '3162', 'X-Xss-Protection': '1; mode=block'} 2026-05-07 10:47:44 [botocore.parsers] DEBUG: Response body: b'' 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler 2026-05-07 10:47:44 [botocore.retryhandler] DEBUG: No retry needed. 2026-05-07 10:47:44 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler > 2026-05-07 10:47:44 [s3transfer.utils] DEBUG: Releasing acquire 0/None 2026-05-07 10:47:44 [scrapy.extensions.feedexport] INFO: Stored jsonlines feed (3 items) in: s3://dagster-output-data/thanhnien_timestamp/thanhnien_timestamp_d6e34f1c4a0111f1b022e21541d96bd3_scheduled_2026-05-07.jl 2026-05-07 10:47:44 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 7581, 'downloader/request_count': 23, 'downloader/request_method_count/GET': 23, 'downloader/response_bytes': 3066062, 'downloader/response_count': 23, 'downloader/response_status_count/200': 23, 'elapsed_time_seconds': 122.292263, 'feedexport/success_count/S3FeedStorage': 1, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2026, 5, 7, 10, 47, 44, 314033, tzinfo=datetime.timezone.utc), 'httpcompression/response_bytes': 15832097, 'httpcompression/response_count': 23, 'item_scraped_count': 3, 'log_count/DEBUG': 198, 'log_count/INFO': 37, 'memusage/max': 162279424, 'memusage/startup': 124256256, 'request_depth_max': 2, 'response_received_count': 23, 'robotstxt/request_count': 1, 'robotstxt/response_count': 1, 'robotstxt/response_status_count/200': 1, 'scheduler/dequeued': 22, 'scheduler/dequeued/memory': 22, 'scheduler/enqueued': 22, 'scheduler/enqueued/memory': 22, 'start_time': datetime.datetime(2026, 5, 7, 10, 45, 42, 21770, tzinfo=datetime.timezone.utc)} 2026-05-07 10:47:44 [scrapy.core.engine] INFO: Spider closed (finished) 2026-05-07 10:47:44 [httpcore.connection] DEBUG: close.started 2026-05-07 10:47:44 [httpcore.connection] DEBUG: close.complete 2026-05-07 10:47:44 [httpcore.connection] DEBUG: close.started 2026-05-07 10:47:44 [httpcore.connection] DEBUG: close.complete