使用Python脚本分析你的网站上的SEO元素
撰稿马尼克斯德芒克 上2019年1月, Sooda internetbureau
Python就是自动执行重复性任务,为您的其他搜索引擎优化(SEO)工作留出更多时间。没有多少SEO使用Python来解决问题,即使它可以为您节省大量的时间和精力。例如,Python可用于以下任务:
- 数据提取
- 制备
- 分析和可视化
- 机器学习
- 深度学习
我们将主要关注本文中的数据提取和分析。将为每个脚本指示所需的模块。
Python SEO分析器
用于分析您网站的非常有用的脚本称为“ SEO分析器 ”。它是一个全面的网站爬虫,分析以下信息:
- 字数
- 页面标题
- 元描述
- 页面上的关键字
- 警告
- 缺少标题
- 缺少描述
- 缺少图像alt-text
这非常适合快速分析您的基本SEO问题。由于页面标题,元描述和页面上的关键字是重要的排名因素,因此该脚本非常适合清楚地了解可能存在的任何问题。
使用SEO分析器
在为此脚本安装必要的模块(BeautifulSoup 4 + urllib2)并将Python更新到3.4+之后,您在技术上已准备好使用此脚本。但是,Json或工作变体可用于导出从SEO分析器中获得的数据。安装脚本后,这些是您可以使用的命令:
seoanalyze http://internetvergelijnk.nl/
seoanalyze https://telefoonvergelijk.nl --sitemap https://telefoonvergelijk.nl/sitemap_index.xml
如上例所示,对于 internetvergelijk 和 telefoonvergelijk ,可以抓取网站或网站的XML站点地图进行SEO分析。另一种选择是从分析中生成HTML输出而不是使用json。这可以通过以下命令完成:
seoanalyze http://internetvergelijk.nl/ --output-format-html
如果已安装json并想要导出数据,请使用以下命令:
from seoanalyzer import analyse output = analyse(site, sitemap) print(output)
您还可以选择替代路径,将分析作为脚本运行,如下例所示:
这将在运行-output-format html脚本后将文件导出为html。此seoanalyze脚本非常适合优化页面标题,元描述,图像和页面关键字。它也比Screaming Frog快得多,所以如果你只是在寻找这些信息,那么运行seoanalyze脚本会更有效率。
链接状态分析器
使用Python进行搜索引擎优化的另一种方法是使用一个脚本来抓取您的网站并分析您的URL状态代码。这个脚本叫做Pylinkvalidator,可以在这里找到)。如果您使用Python 3.x运行它,它只需要BeautifulSoup。如果您运行的是2.6或2.7之类的2.x版本,则不需要BeautifulSoup。
但是,为了加快爬网速度,安装以下库可能很有用:
1)lxml - 加快HTML页面的爬行(需要C库)1)gevent - 使pylinkvalidator能够使用绿色线程1)cchardet - 加快文档编码检测速度
请记住这一点,它们对于抓取较大的网站非常有用,并且只是为了增强链接状态分析器。
该脚本基本上做的是爬行网站的整个URL结构,以便分析每个URL的状态代码。这使得它对于更大的网站来说是一个非常漫长的过程,因此建议使用可选的库来加速这一过程。
使用链接状态分析器
Pylinkvalidator有很多不同的使用选项。例如,您可以:
- 显示进度
- 抓取属于其他主机的网站和网页
- 仅抓取单个页面及其链接的页面
- 只抓取链接,忽略其他链接(图片,样式表等)
- 使用比默认值更多的线程或进程来抓取网站
- 更改您的用户代理
- 抓取多个网站
- 检查robots.txt
- 爬行的身体标签和段落标签
显示进度-P或被--progress推荐,如果没有它,你会发现自己想知道什么时候你的爬行没有任何视觉标志。用于爬网更多线程(-- workers='number of workers')和进程(-- mode=process --workers='number of workers')的命令也非常有用。
当然,该脚本还有更多可供选择的选项。以下示例显示了一些可能的用途:
pylinkvalidate.py -p http://www.example.com/
上面的函数抓取网站并显示进度。
pylinkvalidate.py -p workers=4 http://www.example.com/
此函数使用多个线程抓取网站并显示进度。
pylinkvalidate.py -p --parser=lxml http://www.example.com/
此函数使用lxml库以便在显示进度时加快爬网速度。
pylinkvalidate.py -P --types=a http://www.example.com/
上述功能仅抓取<a href>您网站上的链接(),忽略您网站上的图片,脚本,样式表和任何其他非链接属性。在抓取大型网站的网址时,这也是一项非常有用的功能。脚本运行完毕后,您将获得一个状态代码为4xx和5xx的网址列表,这些网址是通过抓取您的网站找到的。除此之外,您还将获得链接到该页面的URL列表,这样您就可以更轻松地修复损坏的链接。常规爬网不显示任何3xx状态代码。有关可以从哪些URL访问的详细信息,请尝试以下功能:
pylinkvalidate.py --report-type=all http://www.example.com/
这提供了有关页面状态代码以及链接到页面的所有其他页面的信息。
一个非常有用的SEO工具,您可以用来抓取您的网站以查找损坏的链接(404)和服务器错误。这两个错误都可能对您的SEO工作有害,因此请务必定期抓取您自己的网站以尽快修复这些错误。
结论
虽然这些脚本非常有用,但在SEO世界中,Python有很多种用途。挑战自己创建脚本,使您的SEO工作更有效率。有很多Python脚本可以让您的生活更轻松。有用于检查你的hreflang标签,规范,robots.txt等的脚本。因为在今天这个时代,谁可以自动完成手动呢?
使用Python脚本分析你的网站上的SEO元素的更多相关文章
- 基于binlog来分析mysql的行记录修改情况(python脚本分析)
最近写完mysql flashback,突然发现还有有这种使用场景:有些情况下,可能会统计在某个时间段内,MySQL修改了多少数据量?发生了多少事务?主要是哪些表格发生变动?变动的数量是怎 ...
- python脚本分析nginx访问日志
日志格式如下: 223.74.135.248 [11/May/2017:11:19:47 +0800] "POST /login/getValidateCode HTTP/1.1" ...
- python正则表达式获取代理IP网站上的IP地址
import urllib.request import re def open_url(url): req = urllib.request.Request(url) req.add_header( ...
- Python爬虫爬取全书网小说,程序源码+程序详细分析
Python爬虫爬取全书网小说教程 第一步:打开谷歌浏览器,搜索全书网,然后再点击你想下载的小说,进入图一页面后点击F12选择Network,如果没有内容按F5刷新一下 点击Network之后出现如下 ...
- python抓取日本网站上iphone5的价格
抓取日本网站上iphone5的价格,比国内便宜好多汇率换算是在中国银行的网站上取得 #-*- coding:utf-8 -*- import requests import time from bs4 ...
- 记录一次坑爹的Python脚本抢购低价手机经历!
无意间浏览到魅族官网,说魅族3限量100台.30号中午12点抢购.正好我爪机目前处于报废状态,就来一试手气了.11点多种,习惯性的看了下网页脚本,发现了检测是否到抢购时间,并返回抢购消息的ajax.于 ...
- python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据
python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据 最近工作太忙了,有一个星期没有更新文章了,本来这一期打算分享一些对龙虎榜数据的分析结果的,现在还没有把数据内的价值很好 ...
- 像计算机科学家一样思考Python(第2版)|百度网盘免费下载|Python新手入门资料
像计算机科学家一样思考Python(第2版)|百度网盘免费下载 提取码:01ou 内容简介 · · · · · · 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯穿全书的主 ...
- iredmail安装脚本分析(一)---iRedmail.sh
iredmail是一套以postfix为核心的整合邮件系统的安装脚本,可以达到快速部署邮件服务器的目的.为了让自己不遗忘shell的语法,所以闲来无事,学习一下他的代码. 我从官网下载他的最新版,解压 ...
随机推荐
- [Docker] 容器开发环境最佳实践理论
保持 image 小 选择合适的 base image. 使用 multi-stage 构建. https://docs.docker.com/develop/develo ...
- css3:神秘的弹性盒子flexbox
请先运行demo <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- conda国内源的设置 by dwSun
conda国内源的设置 by dwSun anaconda是一个balabalabala... 知道这个软件的人肯定不用介绍,不知道的也不必介绍. conda是anaconda的包管理器,通过cond ...
- UE4 Virtual Reality Input输入配置表导入
[/Script/Engine.InputSettings] AxisConfig=(AxisKeyName="OculusTouch_Right_FaceButton2",Axi ...
- 2017-11-11 Sa Oct How to open a browser in Python
2017-11-11 Sa Oct How to open a browser in Python python -m webbrowser "http://www.example.com/ ...
- 将Python脚本打包成可执行文件——转载
Python是一个脚本语言,被解释器解释执行.它的发布方式: py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库.(Python官方的各种安装 ...
- window备忘录
1.window.name属性是一个字符串,表示当前窗口的名字,只有当浏览器窗口关闭的时候,此属性才会消失. 2.window.closed属性返回一个布尔值,表示窗口是否关闭.此属性一般用来检查使用 ...
- Ubuntu开机时提示“piix4_smbus 0000:00:07.3: SMBus Host controller not enabled”
问题描述:Ubuntu开机时提示“piix4_smbus 0000:00:07.3: SMBus Host controller not enabled” 版本:Ubuntu 18.04 VMw ...
- php的trie_filter扩展安装敏感词查找
#编译libiconv ./configure make make install #编译libdatrie-0.2.11 ./configure LDFLAGS=-L/usr/local/lib L ...
- 微信小程序日历面板插件
创建日历面板组件,在components目录下创建calendar文件夹 1.calendar.js // components/calendar/calendar.js var util = req ...