You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python、Json、BeautifulSoup爬取土耳其KAP网站Aciklamalar文本?

爬取KAP网站Aciklamalar板块文本的可行方案

完全可以用Python结合BeautifulSoup、JSON工具实现,下面分两种常见场景给出具体步骤:

1. 先判断页面加载类型

打开新闻子窗口后,按F12查看页面源代码,搜索'Aciklamalar':

  • 如果能找到对应文本,说明是静态渲染页面,直接用BeautifulSoup解析即可;
  • 如果搜不到,说明内容是AJAX动态加载的,需要抓接口获取数据。

2. 静态页面爬取(BeautifulSoup实现)

如果是静态页面,直接请求并解析:

import requests
from bs4 import BeautifulSoup
import json

# 替换成你实际打开的新闻子窗口URL
news_url = "你的新闻详情页URL"
# 模拟浏览器请求头,避免被拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}

# 发送请求
response = requests.get(news_url, headers=headers)
response.encoding = "utf-8"  # 确保土耳其语正常显示

# 解析HTML
soup = BeautifulSoup(response.text, "html.parser")

# 定位Aciklamalar板块(根据实际页面结构调整,比如标题是h3标签)
aciklamalar_title = soup.find("h3", string="Aciklamalar")
if aciklamalar_title:
    # 假设内容在标题的下一个兄弟div里,实际要根据页面结构调整
    content_block = aciklamalar_title.find_next_sibling("div")
    if content_block:
        content_text = content_block.get_text(strip=True, separator="\n")
        print(content_text)
        # 保存为JSON文件
        with open("aciklamalar_content.json", "w", encoding="utf-8") as f:
            json.dump({"Aciklamalar": content_text}, f, ensure_ascii=False, indent=4)
else:
    print("未找到Aciklamalar板块,请检查页面结构")

3. 动态页面爬取(抓AJAX接口)

如果是动态加载:

  1. 打开F12的「Network」标签,刷新页面;
  2. 筛选「XHR/fetch」类型的请求,逐个查看返回的JSON数据,找到包含Aciklamalar内容的接口;
  3. 直接请求该接口获取数据:
import requests
import json

# 替换成找到的接口URL
api_url = "你的AJAX接口URL"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
    "X-Requested-With": "XMLHttpRequest"  # 部分接口需要这个头标识AJAX请求
}

response = requests.get(api_url, headers=headers)
data = response.json()

# 根据接口返回的JSON结构提取内容,比如data["aciklamalar"]
aciklamalar_content = data.get("aciklamalar", "未找到对应内容")

# 保存为JSON文件
with open("aciklamalar_content.json", "w", encoding="utf-8") as f:
    json.dump({"Aciklamalar": aciklamalar_content}, f, ensure_ascii=False, indent=4)

print(aciklamalar_content)

关键注意点

  • 必须加User-Agent头,模拟浏览器行为,避免被网站封禁IP;
  • 保存内容时用utf-8编码,防止土耳其语出现乱码;
  • 网站页面结构可能会更新,要根据实际情况调整BeautifulSoup的定位规则(比如用class属性定位标签);
  • 不要高频次请求,可适当添加time.sleep(2)延时,避免触发反爬机制。

内容的提问来源于stack exchange,提问作者Kaan Akdik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:43:22