作为一名SEO专业人士,我的日常任务也在不断学习。在去年年底开始学习Python之后,我发现自己越来越多地将我所学的东西付诸实践。

这包括相当简单的任务,例如比较字数或状态码随时间的变化,以及分析包括内部链接和日志文件分析在内的工作。

此外,Python还非常有用:

  • 用于处理大型数据集
  • 对于通常会使Excel崩溃并需要复杂分析以提取任何有意义的见解的文件。

Python如何帮助技术SEO

Python以多种方式授权SEO专业人员自动化能力通常需要大量的时间来完成重复性的任务。

  • 当然小编这里也准备一份适合你的学习资料爬虫 ,web开发的学习资料视频教程,私信小编“01”都可以免费获取!这些书籍都是可以私信小编“01”免费领取的!

这意味着我们有更多的时间(和精力)用于重要的战略工作和无法自动化的优化工作。

它还使我们能够更有效地处理大量数据,以便做出更多数据驱动的决策,从而为我们的工作和客户的工作提供有价值的回报。

事实上,有数据公司研究发现,数据驱动型组织获得客户的可能性是其他组织的23倍,而留住这些客户的可能性是6倍。

它对备份你的任何想法或策略也很有帮助,因为你可以用你拥有的数据来量化这些想法或策略,并在此基础上做出决策,同时在努力实现事情时也有更大的杠杆作用。

将Python添加到SEO工作流

将Python添加到工作流中的最佳方法是:

  • 想一想什么是可以自动化的,尤其是在执行乏味的任务时。
  • 确定您正在执行或已完成的分析工作中的任何差距。

我发现开始学习的另一个有用的方法是使用你已经访问过的数据,并且提取有价值的见解使用Python

这就是我如何学会了我将在本文中分享的大部分东西。

学习Python并不是成为一个好的SEO专家的必要条件,但是如果你有兴趣了解更多关于Python如何帮助你做好准备的话。

开始需要什么

为了从本文中获得最佳效果,您需要以下几点:

  • 来自网站的一些数据(例如,对网站的爬网、统计分析或搜索控制台数据)。
  • 一个运行代码的IDE(集成开发环境),对于入门我推荐Google Colab或Jupyter Notebook .
  • 开放的心态。这也许是最重要的一点,不要害怕打破某些东西或犯错误,找到问题的原因和解决问题的方法是我们作为SEO专业人士所做的工作的一个重要部分,因此将同样的心态应用于学习Python有助于减轻任何压力。

1、善用网络现有的资源

一个很好的开始是尝试Python中可用的许多库中的一些。

有很多要探索的库,但我发现对SEO相关任务最有用的三个任务是Pandas,Requests和Beautiful Soup。

Pandas

Pandas是一个用于处理表数据的Python库,它允许在关键数据结构是数据帧的情况下进行高级数据操作。

数据帧本质上是Pandas的Excel电子表格但是,它不仅限于Excel的行和字节限制,而且比Excel快得多,因此效率更高。

开始使用Pandas的最佳方法是获取一个简单的CSV数据,例如,对您的网站进行爬网,并将其保存在Python中作为一个DataFrame。

一旦你有了这个存储,你就可以执行许多不同的分析任务,包括聚合、透视和清理数据。

import pandas as pd df = pd.read_csv("/file_name/and_path") df.head

requests

下一个库名为requests,用于在Python中发出HTTP请求。

它使用不同的请求方法(如GET和POST)发出请求,结果存储在Python中。

其中一个例子是一个简单的URL GET请求,它将打印出一个页面的状态代码,然后可以使用它来创建一个简单的决策函数。

import requests
#Print HTTP response from page  response = requests.get('https://www.xxxxxxxx.com')
print(response)
#Create decision making function
if response.status_code == 200:
print('Success!')
elif response.status_code == 404:
print('Not Found.')

您还可以使用不同的请求,例如headers,它显示关于页面的有用信息,例如内容类型和缓存响应所需时间的时间限制。

#Print page header response headers = response.headers print(headers)  #Extract item from header response response.headers['Content-Type']

此外,还可以模拟特定的用户代理,例如Googlebot,以便提取该特定bot在抓取页面时看到的响应。

headers = {'User-Agent': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'}
ua_response = requests.get('https://www.xxxx.com/', headers=headers)
print(ua_response)

Beautiful Soup

最后一个库名为Beautiful Soup,用于从HTML和XML文件 .

它最常用于web抓取,因为它可以将HTML文档转换为不同的Python对象。

例如,您可以获取一个URL,并使用beautifulsoup和Requests库一起提取页面的标题。

#Beautiful Soup  from bs4 import BeautifulSoup  import requests
#Request URL to extract elements from url= 'https://www.xxxxxxxxx.com/knowledge/technical-seo-library/' req = requests.get(url)
soup = BeautifulSoup(req.text, "html.parser")
#Print title from webpage
title = soup.title print(title)

此外,Beautiful Soup允许您从页面中提取其他元素,例如页面上找到的所有a href链接。

for link in soup.find_all('a'):
print(link.get('href'))

2、分段分割页面

第一个任务涉及到对网站的页面进行细分,这实际上是根据页面的URL结构或页面标题将页面按类别分组。

首先,使用简单的正则表达式根据URL将网站分成不同的段:

segment_definitions = [     [(r'\/blog\/'), 'Blog'],     [(r'\/technical-seo-library\/'), 'Technical SEO Library'],     [(r'\/hangout-library\/'), 'Hangout Library'],     [(r'\/guides\/'), 'Guides'],     ]

接下来,我们添加一个小函数,它将遍历URL列表并为每个URL分配一个类别,然后将这些段添加到包含原始URL列表的DataFrame中的新列中。

use_segment_definitions = True  def segment(url):
if use_segment_definitions == True:
for segment_definition in segment_definitions:
if re.findall(segment_definition[0], url):
return segment_definition[1]
return 'Other'  df['segment'] = df['url'].apply(lambda x: get_segment(x))

还有一种方法可以使用URL结构在不必手动创建片段的情况下对页面进行分段。这将获取包含在主域后面的文件夹,以便对每个URL进行分类。

同样,这将向我们的DataFrame添加一个新列,其中包含生成的段。

def get_segment(url):
slug = re.search(r'https?:\/\/.*?\//?([^\/]*)\/', url)
if slug:
return slug.group(1)
else:
return 'None'
# Add a segment column, and make into a category df['segment'] = df['url'].apply(lambda x: get_segment(x))

三、重定向相关性

如果我不了解使用Python可能实现的任务,那么我将从未考虑过要完成此任务。

在迁移之后,当重定向到位时,我们希望通过查看每个页面的类别和深度是否已更改或保持不变来确定重定向映射是否准确。

这涉及到在迁移前和迁移后对站点进行爬网,并根据其URL结构对每个页面进行分段,如上所述。

在这之后,我使用了一些简单的比较运算符(它们内置于Python中)来确定每个URL的类别和深度是否发生了更改。

df['category_match'] = df['old_category'] == (df['redirected_category'])
df['segment_match'] = df['old_segment'] == (df['redirected_segment'])
df['depth_match'] = df['old_count'] == (df['redirected_count'])
df['depth_difference'] = df['old_count'] - (df['redirected_count'])

由于这本质上是一个自动化的脚本,它将在每个URL中运行以确定类别或深度是否已更改,并将结果作为新的数据帧输出。

新的DataFrame将包含额外的列,如果它们匹配,则显示True;如果不匹配,则显示False。

就像在Excel中一样,Pandas库使您能够基于原始数据帧的索引来透视数据。

例如,获取迁移后有多少URL具有匹配的类别。

此分析将使您能够查看已设置的重定向规则,并确定是否存在迁移前后差异较大的类别,这些类别可能需要进一步调查。

4、内部链接分析

分析内部链接对于确定站点的哪些部分链接最多,以及发现改进站点内部链接的机会非常重要。

为了执行此分析,我们只需要从web爬网中获取一些数据列,例如,显示页面之间链接的任何度量。

再次,我们想分割这些数据,以便确定网站的不同类别并分析它们之间的链接。

internal_linking_pivot['followed_links_in_count'] = (internal_linking_pivot['followed_links_in_count']).apply('{:.1f}'.format)
internal_linking_pivot['links_in_count'] = (internal_linking_pivot2['links_in_count']).apply('{:.1f}'.format)
internal_linking_pivot['links_out_count'] = (internal_linking_pivot['links_out_count']).apply('{:.1f}'.format)
internal_linking_pivot

透视表对于这种分析非常有用,因为我们可以透视类别,以便计算每个类别的内部链接总数。

Python还允许我们执行数学函数,以便获得我们所拥有的任何数字数据的计数、求和或平均值。

5、日志文件分析

另一个重要的分析与日志文件,以及我们可以在许多不同工具中收集到的这些数据。

您可以提取一些有用的见解,包括确定Googlebot对站点的哪些区域进行爬网最多,以及监视请求数随时间的变化。

此外,它们还可以用来查看有多少不可索引或损坏的页面仍在接收bot点击,以解决爬网预算的任何潜在问题。

对于每一个类别,最容易使用的就是根据数据段对URL进行统计,或者对每个数据段进行统计。

如果你能够访问历史日志文件数据,也有可能监测谷歌访问你的网站的变化。

Python中也有很好的可视化库,如Matplotlib和Seaborn,它们允许您创建条形图或折线图,将原始数据绘制成易于跟踪的图表,显示随时间变化的比较或趋势。

6、数据合并

使用Pandas库,还可以基于共享列(例如URL)组合数据帧。

一些有用的SEO合并示例包括将来自web爬网的数据与googleanalytics中收集的转换数据相结合。

这将使用每个URL进行匹配,并在一个表中显示来自两个源的数据。

以这种方式合并数据有助于为性能最好的页面提供更多的见解,同时还可以识别性能不如预期的页面。

合并类型

在Python中有两种不同的合并数据的方法,默认的方法是内部合并,合并将发生在左数据帧和右数据帧中的值上。

但是,您也可以执行外部合并,它将返回左侧数据帧中的所有行,以及右侧数据帧中的所有行,并尽可能匹配它们。

以及右合并或左合并将合并所有匹配的行,并保留不匹配的行(如果分别存在于右合并或左合并中)。

7、谷歌趋势

还有一个很棒的图书馆,叫做PyTrends公司,这实际上允许您使用Python按比例收集Google趋势数据。

有几种API方法可用于提取不同类型的数据。

一个例子是一次跟踪最多5个关键字的搜索兴趣。

另一个有用的方法是返回某个主题的相关查询,这将显示一个介于0-100之间的Google Trends分数,以及一个百分比,显示随着时间的推移,关键字的兴趣增加了多少。

这些数据可以很容易地添加到googlesheet文档中,以便在googledatastudio仪表板中显示。

总之

这些项目帮助我节省了大量手动分析工作的时间,同时也让我能够从我所接触到的所有数据中发现更多的见解。

我希望这能给你一些SEO项目的灵感,你可以开始学习Python。

为SEO学习Python 分享7个技巧帮助你做数据分析工作相关推荐

  1. 业余学习python有用吗_对于那些不做编程工作的小伙伴来说,学习Python有什么用呢?...

    很多同学会说Python那么火,铺天盖地的都是他的广告,可是我的平时工作和学习又接触不到编程之类的东西,那来学习它又有什么用呢? 有没有这个必要呢?在此,小编对于有这种疑问的同学呢想对你们说,其实即便 ...

  2. python seo百度_为SEO学习Python课程(python与seo百度云免费)

    SEO可能希望学习编程语言的原因有很多.本指南处理"如何"而不是"为什么".如果您已经到达这里,想知道Python(或编程)是否适合您-很好的起点是Britne ...

  3. 自学python能学成吗-没有任何编程基础可以直接学习python语言吗?学会后能够做什么?...

    很明确的说 python非常适合没有任何编程基础的人入门.. 目前应用最多的:全栈开发.数据分析.运维开发,今天我们就以这三个重点的岗位来做一下自学Python的规划,希望你在学之前就能有结果的来走得 ...

  4. 零基础学python多久可以工作-零基础学习python,要多久才可以学好并且找到工作?...

    原标题:零基础学习python,要多久才可以学好并且找到工作? 零基础的你想学习python肯定很关注学习python的最短时间是多久,怎样才能快速学习python等问题,今天就为大家详细地回答一下这 ...

  5. 学python需要多久-零基础学习python,要多久才可以学好并且找到工作?

    原标题:零基础学习python,要多久才可以学好并且找到工作? 零基础的你想学习python肯定很关注学习python的最短时间是多久,怎样才能快速学习python等问题,今天就为大家详细地回答一下这 ...

  6. 0基础学python要多久-零基础学习python,要多久才可以学好并且找到工作?

    原标题:零基础学习python,要多久才可以学好并且找到工作? 零基础的你想学习python肯定很关注学习python的最短时间是多久,怎样才能快速学习python等问题,今天就为大家详细地回答一下这 ...

  7. SEO学习心得:分享总结学习SEO的心得

    在互联网行业中学习SEO优化的人有很多,学习SEO途径也有很多种,大多数都是以自学为主,通过在网上报名SEO培训,还有的自己看SEO书籍,但是学习的基本都是入门阶级,很少有跟深层次的学习,学习的内容千 ...

  8. python适合开发游戏吗_【学习python小游戏代码,你就可以做python滑雪游戏了】- 环球网校...

    [摘要]很多人开始学习编程都会选择python,并且也会将python用在实际生活中,不过有很多伙伴也打算用python做游戏,所以小编建议大家可以学习python小游戏代码,今天环球网校的小编就来和 ...

  9. Python为何如此受欢迎?你真的需要学习Python嘛?学了之后能做些什么?

    Python是一门代码简单.易读易写的编程语言. 近年来,它是一种在 AI 开发中受到关注的编程语言,并且由于有专门用于机器学习的库,因此它已被用作 AI 开发的标准语言.此外由于它简单易懂,因此经常 ...

最新文章

  1. siteMap与站点导航
  2. tcpdump源码分析——抓包原理
  3. 没有bug队——加贝——Python 练习实例 21,22
  4. python中异或运算_python – 基于ID列表有效计算XOR(^)校验和的方法
  5. 英特尔贡献基于 Kubernetes 分布式深度学习平台:Nauta
  6. mysql 绿色安装 ubuntu_Ubuntu免安装配置MySQL
  7. qt开发linux性能测试工具,基于Qt的ARM-Linux系统测试工具
  8. linux装回windows系统,装linux后怎样装回windows?(Linux系统清除Grub的几种方法)
  9. 【B2B】阿里巴巴汪海:1688成年礼—从中小企业数字化看B2B发展趋势
  10. uva 10099(最短路径)
  11. 大数据可视化应用_在数据可视化中应用种族平等意识
  12. ElasticSearch + IK分词 + 拼音分词
  13. 余生很短,请珍惜 珍护 珍重
  14. 如何分辨iphone 的冷屏与暖屏
  15. Could not transfer artifact XXX 问题处理
  16. 移动APP测试用例设计实践经验
  17. 阿里云智能身份证OCR文字识别
  18. 解决第三方网页在微信浏览器中点击图片会自动放大
  19. 基于SVPWM的两电平逆变器MATLAB仿真模型 仿真搭建的很有条理
  20. 编程新技术实务实验二

热门文章

  1. 修改FILE缓冲区大小,改进写日志性能
  2. Redis缓存何以一枝独秀?以及热门面试题中Redis的核心特性
  3. 【新】刀具管理系统 上线~~
  4. 【网站制作】二、实战 - B站首页导航栏
  5. Data Leakage
  6. C++之23种经典设计模式(一)
  7. CSS中中文字体的英文写法
  8. arp-scan轻量级arp扫描工具
  9. mysql sqlstate 42000_mysql-SQLSTATE [42000]:语法错误或访问冲突:...
  10. Monkey详解(事件型指令篇)-转