当前位置: 首页 > news >正文

使用python实现关键字排名追踪——跟踪你的网站在过去12个月搜索引擎排名和关键字表现

要实现一个简单的Python工具来跟踪你的网站在过去12个月的搜索引擎排名和关键词表现,我们可以使用以下技术栈:

  • Google Search Console API:可以获取到Google搜索的数据,包括关键词排名、点击量、展示量等。需要事先配置Google Cloud并获取API凭证。
  • BeautifulSoup 和 Requests:用于抓取搜索引擎页面的排名数据。如果你不想使用Google Search Console API,可以模拟手动抓取搜索引擎结果。

下面,我将分别介绍如何实现这两个方案,并展示一个Python实现的例子。

方案一:使用 Google Search Console API

  1. 安装必要的库

    首先,你需要安装Google API客户端库:

    pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
    
  2. 创建 Google Cloud 项目并启用 Search Console API

    • 访问 Google Cloud Console,创建一个新的项目。
    • 启用 Google Search Console API
    • 获取 OAuth 2.0凭证,并下载 credentials.json 文件。
  3. Python代码实现

    以下是通过Google Search Console API 获取网站过去12个月关键词排名的代码示例:

    import os
    import json
    from google.oauth2 import service_account
    from googleapiclient.discovery import build
    import datetime# 读取Google Search Console API的凭证
    SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
    KEY_FILE_LOCATION = 'path_to_your_credentials.json'
    PROPERTY_URL = 'https://www.example.com'  # 替换成你的网站URL# 设置日期范围(过去12个月)
    today = datetime.date.today()
    twelve_months_ago = today - datetime.timedelta(days=365)# 认证并创建服务对象
    credentials = service_account.Credentials.from_service_account_file(KEY_FILE_LOCATION, scopes=SCOPES)
    service = build('searchconsole', 'v1', credentials=credentials)# 获取搜索分析数据
    def get_search_analytics_data():request = service.searchanalytics().query(siteUrl=PROPERTY_URL,body={'startDate': str(twelve_months_ago),'endDate': str(today),'dimensions': ['query'],'rowLimit': 1000  # 获取前1000个关键词})response = request.execute()# 输出结果if 'rows' in response:for row in response['rows']:keyword = row['keys'][0]clicks = row['clicks']impressions = row['impressions']ctr = row['ctr']position = row['position']print(f"关键词: {keyword}, 点击量: {clicks}, 展示量: {impressions}, CTR: {ctr:.2f}, 排名: {position:.2f}")else:print("没有找到数据")if __name__ == '__main__':get_search_analytics_data()
    

    说明:

    • startDateendDate 设定了过去12个月的时间范围。
    • dimensionsquery,表示我们希望获取关键词相关的搜索数据。
    • rowLimit 用于限制返回的关键词数量,最多可以返回1000个。
  4. 运行代码

    运行代码时,它会输出网站在过去12个月的关键词表现,包括点击量、展示量、CTR(点击率)和排名。

方案二:使用 BeautifulSoup 模拟抓取搜索引擎

如果你不想使用 Google Search Console API,可以使用 BeautifulSoup 来抓取搜索引擎的结果来获取关键词排名。这个方法不太推荐用于大规模的抓取,因为搜索引擎可能会限制或封锁爬虫的请求。

  1. 安装必要的库

    pip install beautifulsoup4 requests
    
  2. Python代码实现

    下面是使用 BeautifulSoup 模拟抓取 Google 搜索结果并提取关键词排名的代码:

    import requests
    from bs4 import BeautifulSoup
    import urllib.parse# Google 搜索URL模板
    def google_search_url(query):query = urllib.parse.quote(query)return f"https://www.google.com/search?q={query}"# 获取排名信息
    def get_keyword_rank(keyword):url = google_search_url(keyword)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}response = requests.get(url, headers=headers)if response.status_code != 200:print("请求失败!")return Nonesoup = BeautifulSoup(response.text, 'html.parser')# 解析搜索结果result_divs = soup.find_all('div', {'class': 'g'})rankings = []for index, div in enumerate(result_divs):title = div.find('h3')if title:rank = index + 1link = div.find('a')['href']rankings.append((rank, title.text, link))return rankings# 获取关键词的排名
    def track_keywords(keywords):for keyword in keywords:print(f"查询关键词: {keyword}")rankings = get_keyword_rank(keyword)if rankings:for rank, title, link in rankings:print(f"排名: {rank}, 标题: {title}, 链接: {link}")print("-" * 40)if __name__ == '__main__':keywords = ['python教程', 'SEO优化教程', '数据分析工具']  # 输入你想跟踪的关键词track_keywords(keywords)
    
  3. 运行代码

    运行时,它会通过抓取 Google 搜索的前几页结果来跟踪给定的关键词的排名。每个关键词的排名和相关链接会被输出。

总结

  • 方案一:使用 Google Search Console API 是更官方和高效的方法,可以直接获取你网站的排名和表现数据,推荐给专业的SEO团队使用。
  • 方案二:使用 BeautifulSoup 模拟抓取搜索引擎结果,虽然简单易用,但容易受到反爬虫机制的限制,适合小范围使用。

无论是哪种方案,跟踪关键词的排名和表现都有助于你了解网站的SEO效果,并且能够帮助你做出优化决策。


http://www.mrgr.cn/news/66893.html

相关文章:

  • Android AndroidManifest 文件内标签及属性
  • Linux 经典面试八股文
  • 使用 ADB 在某个特定时间点点击 Android 设备上的某个按钮
  • 谷歌seo链建设:数量和质量如何平衡?
  • 用Python将PDF表格提取到文本、CSV和Excel文件中
  • k8s 查看cpu使用率最高的pod
  • 代码随想录训练营Day18 | 77. 组合 - 216.组合总和III - 17.电话号码的字母组合
  • 【Homework】【1--3】Learning resources for DQ Robotics in MATLAB
  • MyBatis 返回 Map 或 List<Map>时,时间类型数据,默认为LocalDateTime,响应给前端默认含有‘T‘字符
  • 图片怎么用二维码存储展展示?扫码预览图片的制作方法
  • 利用SCF文件构建网络渗透
  • 主流OLAP对比
  • 舜宇光学科技入职测评:北森商业推理40分钟28题真题解析、网盘资料下载、答题技巧
  • 思维导图:释放大脑潜能的图形工具
  • 【综合算法学习】(第二十篇)
  • 春季全国糖酒会为什么一直选择成都作为举办地......
  • 揭秘自闭症症状的最新研究成果和应对策略
  • 计算机网络——IP协议
  • 中电金信:企业数据赋能效果差,科学试错体系了解一下?
  • 【go从零单排】go中的nil到底是啥意思?
  • 软考高级架构 - 8.1 - 系统质量属性与架构评估 - 超详细讲解+精简总结
  • Redis - String 字符串
  • 2024年最受欢迎的项目管理软件排行榜:从入门到进阶的选择
  • 基于Redis缓存机制实现高并发接口调试
  • 反射API与AOP:打造高效可维护的应用架构(代码示例)
  • 【系统集成项目管理工程师教程】第9章 项目管理概论