Home >  > Python开发SEO工具

Python开发SEO工具

0

按youtube上面的教程自己一个一个代码敲的。

主要功能:
检查目标网页的on-page SEO效果,比如title,keywords,h1,h2这些。

扩展用途:
可以用于分析搜索引擎的搜索结果。

成果展示:

from urllib.request import urlopen,Request
from bs4 import BeautifulSoup
import re


url = input("Which page would you like to check? Enter Full URL:")
keyword = input("what is your seo keyword?")
keyword = keyword.casefold()

try:
    req = Request(url, headers = {'User-Agent':'Mozilla/6.0'})
    html = urlopen(req)
except HTTPError as e:
    print(e)

data = BeautifulSoup(html,"html.parser")

def seo_title_found(keyword,data):
    if data.title:
        if keyword in data.title.text.casefold():
            status = "Found"
        else:
            status = "Not Found"
    else:
        status = "No title found"

    return status

def seo_title_stop_words(data):
    words = 0
    list_words = []
    if data.title:
        with open('stopwords.txt','r') as f:
            for line in f:
                if re.search(r'\b' + line.rstrip('\n')+r'\b',data.title.text.casefold()):
                    words += 1
                    list_words.append(line.rstrip('\n'))
        if words > 0:
            stop_words = "We found {} stop words in your title. You should consider removing them.{}".format(words,list_words)
        else:
            stop_words = "We found no stop words in the title. Good work!"
    else:
        stop_words = "We could not find a title"

    return stop_words


def seo_title_length(data):
    if data.title:
        if len(data.title.text) < 60:
            length = "Your length is under the maximum suggested length of 60 characters. Your title is {}".format(len(data.title.text))
        else:
            length = "Your length is over the maximum suggest length of 60 character. Your title is {}".format(len(data.title.text))
    else:
        length = "No title was found"

    return length

def se_url(url):
    if url:
        if keyword in url:
            slug = "Your keyword was found in your slug"
        else:
            slug = "Your keywords was not found in your slug"
    else:
        slug = "No url was retured"
    return slug

def seo_url_length(url):
    if url:
        if len(url) < 100:
            url_length = "Your URL is less than the 100 character maximum suggested length.Good work"
        else:
            url_length =  "Your URL is over 100 characters. Your URL currently is {}.You should change this.".format(len(url))
    else:
        url_length = "URL was not found"
    return  url_length

def seo_h1(keyword, data):
    total_h1 = 0
    total_keyword_h1 = 0
    if data.h1:
        all_tags = data.find_all('h1')
        for tag in all_tags:
            total_h1 += 1
            tag = str(tag.string)
            if keyword in tag.casefold():
                total_keyword_h1 += 1
                h1_tag = "Found keyword in h1 tag.You have a total of {} H1 Tags.and your kwyword was found in {} of them".format(total_h1,total_keyword_h1)
            else:
                h1_tag = "Didn't find a kwyords in h1 tag."
    else:
        h1_tag = "No H1 Tags Found"
    return h1_tag

def seo_h2(keyword,daa):
    if data.h2:
        all_tags = data.find_all('h2')
        for tag in all_tags:
            tag = str(tag.string)
            if keyword in tag.casefold():
                h2_tag = "Found your keyword in at least one h2 tag"
            else:
                h2_tag = "We didn't find your keyword in a singel h2 tag.You should add {} to h2 tag".format(keyword)
    else:
        h2_tag = "No h2 tags found.You  should have at least one containing your keyword."
    return h2_tag

print(seo_title_found(keyword,data))
print(seo_title_stop_words(data))
print(seo_title_length(data))
print(se_url(url))
print(seo_url_length(url))
print(seo_h1(keyword,data))
print(seo_h2(keyword,data))

https://www.youtube.com/watch?v=AJAf1-dy5RA

本文暂无标签

发表评论

*

*