文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-12-03 15:45

关注

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

 

此外,Python还非常有用:

Python如何帮助技术SEO

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

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

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

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

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

将Python添加到SEO工作流

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

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

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

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

开始需要什么

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

1、善用网络现有的资源

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

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

Pandas

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

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

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

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

  1. import pandas as pd 
  2. df = pd.read_csv("/file_name/and_path"
  3. df.head 

requests

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

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

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

  1. import requests 
  2.  
  3. #Print HTTP response from page  
  4. response = requests.get('https://www.xxxxxxxx.com'
  5. print(response) 
  6.  
  7. #Create decision making function  
  8. if response.status_code == 200: 
  9.     print('Success!'
  10. elif response.status_code == 404: 
  11.     print('Not Found.'

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

  1. #Print page header response 
  2. headers = response.headers 
  3. print(headers) 
  4.  
  5. #Extract item from header response 
  6. response.headers['Content-Type'

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

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

Beautiful Soup

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

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

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

  1. #Beautiful Soup  
  2. from bs4 import BeautifulSoup  
  3. import requests  
  4.  
  5. #Request URL to extract elements from 
  6. url= 'https://www.xxxxxxxxx.com/knowledge/technical-seo-library/' 
  7. req = requests.get(url) 
  8. soup = BeautifulSoup(req.text, "html.parser"
  9.  
  10. #Print title from webpage  
  11. title = soup.title 
  12. print(title) 

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

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

 

2、分段分割页面

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

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

  1. segment_definitions = [ 
  2.     [(r'\/blog\/'), 'Blog'], 
  3.     [(r'\/technical-seo-library\/'), 'Technical SEO Library'], 
  4.     [(r'\/hangout-library\/'), 'Hangout Library'], 
  5.     [(r'\/guides\/'), 'Guides'], 
  6.     ] 

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

  1. use_segment_definitions = True 
  2.  
  3. def segment(url): 
  4.      
  5.     if use_segment_definitions == True
  6.         for segment_definition in segment_definitions: 
  7.             if re.findall(segment_definition[0], url): 
  8.                 return segment_definition[1] 
  9.         return 'Other' 
  10.  
  11. df['segment'] = df['url'].apply(lambda x: get_segment(x)) 

 


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

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

  1. def get_segment(url): 
  2.    
  3.         slug = re.search(r'https?:\/\/.*?\//?([^\/]*)\/', url) 
  4.         if slug: 
  5.             return slug.group(1) 
  6.         else
  7.             return 'None' 
  8.  
  9. Add a segment columnand make into a category 
  10. df['segment'] = df['url'].apply(lambda x: get_segment(x)) 

三、重定向相关性

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

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

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

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

  1. df['category_match'] = df['old_category'] == (df['redirected_category']) 
  2. df['segment_match'] = df['old_segment'] == (df['redirected_segment']) 
  3. df['depth_match'] = df['old_count'] == (df['redirected_count']) 
  4. df['depth_difference'] = df['old_count'] - (df['redirected_count']) 

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

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

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

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

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

4、内部链接分析

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

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

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

  1. internal_linking_pivot['followed_links_in_count'] = (internal_linking_pivot['followed_links_in_count']).apply('{:.1f}'.format) 
  2. internal_linking_pivot['links_in_count'] = (internal_linking_pivot2['links_in_count']).apply('{:.1f}'.format) 
  3. internal_linking_pivot['links_out_count'] = (internal_linking_pivot['links_out_count']).apply('{:.1f}'.format) 
  4. 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。

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯