欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python制作一個批量查詢搜索排名工具

 更新時間:2023年06月18日 08:14:49   作者:海擁  
這篇文章主要為大家詳細介紹了如何使用Python制作一個批量查詢搜索排名工具,并且不需要花費任何費用,裝上python開發(fā)環(huán)境即可,需要的可以參考一下

搭建背景

最近工作中需要用上 Google SEO(搜索引擎優(yōu)化),有了解過的朋友們應該都知道SEO必不可少的工作之一就是查詢關鍵詞的搜索排名。關鍵詞少的時候可以一個一個去查沒什么問題,但是到了后期,一個網(wǎng)站都有幾百上千的關鍵詞,你再去一個一個查,至少要花費數(shù)小時的時間。

雖然市面上有很多SEO免費或者收費工具,但免費的基本都不能批量查,我看到網(wǎng)上最多也就只能10個10個查詢,而且查詢速度很慢。收費的工具如Ahrefs、SEMrush等以月為單位收費最低也都要 99$/月,當然如果覺得價格合適也可以進行購買,畢竟這些工具的很多功能都很實用。今天我給大家分享的這個排名搜索工具基于python實現(xiàn),當然肯定是不需要花費任何費用,裝上python開發(fā)環(huán)境即可。

實現(xiàn)步驟

話不多說,上代碼:

import requests
from bs4 import BeautifulSoup

首先我們導入requests和BeautifulSoup兩個庫,requests用于發(fā)送HTTP請求,BeautifulSoup用于解析HTML。

def get_google_rank(keyword, website):
    try:
        url = f"https://www.google.com/search?q={keyword}"
        headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36'}
        response = requests.get(url, headers=headers)
        response.raise_for_status()

        soup = BeautifulSoup(response.text, 'html.parser')
        search_results = soup.find_all('div', class_='g')

        for i, result in enumerate(search_results):
            link = result.find('a')['href']
            if website in link:
                return i + 1  # 返回排名(從1開始)
        
        return -1  # 如果未找到網(wǎng)站,返回-1

    except requests.exceptions.RequestException as e:
        print(f"An error occurred: {e}")
        return None

上述代碼定義了一個名為get_google_rank的函數(shù),該函數(shù)接受兩個參數(shù):keyword(關鍵詞)和website(網(wǎng)站域名)。函數(shù)的目標是獲取指定關鍵詞在谷歌搜索結果中的排名。

在函數(shù)內部,首先構建了一個URL,該URL使用指定的關鍵詞進行谷歌搜索。然后設置了一個User-Agent頭部,模擬一個瀏覽器的請求。使用requests.get方法發(fā)送HTTP請求,獲取搜索結果頁面的響應。response.raise_for_status()用于檢查請求是否成功,如果返回的狀態(tài)碼不是200,會拋出一個異常。

接下來,使用BeautifulSoup庫解析響應的HTML內容,創(chuàng)建一個BeautifulSoup對象,并使用html.parser解析器進行解析。然后通過find_all方法查找所有具有'class'屬性為'g'的'div'元素,這些元素包含了搜索結果的信息。

接著使用enumerate函數(shù)遍歷搜索結果列表,并使用result.find('a')['href']獲取每個搜索結果中的鏈接。如果指定的網(wǎng)站域名出現(xiàn)在鏈接中,就返回當前的排名(從1開始計數(shù))。

如果循環(huán)結束后未找到指定的網(wǎng)站域名,函數(shù)返回-1,表示未找到網(wǎng)站。

如果在請求過程中發(fā)生異常,會捕獲requests.exceptions.RequestException異常,并打印錯誤消息,然后返回None。

# 示例用法
keywords = ['摸魚小游戲','是男人就下100層','游戲']
website = 'haiyong.site'
for keyword in keywords:
    rank = get_google_rank(keyword, website)
    if rank is not None:
        if rank == -1:
            print(f"{keyword}沒有排名")
        else:
            print(f"{keyword}排名第{rank}")

最后是一個示例用法的代碼。定義了一個包含多個關鍵詞的列表keywords和一個指定的網(wǎng)站域名website。

通過for循環(huán)遍歷關鍵詞列表,調用get_google_rank函數(shù)獲取每個關鍵詞在谷歌搜索結果中的排名。如果返回的排名不為None,則根據(jù)排名的值進行條件判斷,如果排名為-1,打印關鍵詞沒有排名的消息,否則打印關鍵詞的排名信息。

以上就是整段代碼的含義和邏輯。該代碼實現(xiàn)了獲取指定關鍵詞在谷歌搜索結果中的排名,并通過示例展示了如何使用這個函數(shù)。

完整代碼

import requests
from bs4 import BeautifulSoup

def get_google_rank(keyword, website):
    try:
        url = f"https://www.google.com.hk/search?q={keyword}"
        headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36'}
        response = requests.get(url, headers=headers)
        response.raise_for_status()

        soup = BeautifulSoup(response.text, 'html.parser')
        search_results = soup.find_all('div', class_='g')

        for i, result in enumerate(search_results):
            link = result.find('a')['href']
            if website in link:
                return i + 1  # 返回排名(從1開始)
        
        return -1  # 如果未找到網(wǎng)站,返回-1

    except requests.exceptions.RequestException as e:
        print(f"An error occurred: {e}")
        return None

# 示例用法
keywords = ['摸魚小游戲','是男人就下100層','游戲']
website = 'haiyong.site'

for keyword in keywords:
    rank = get_google_rank(keyword, website)
    if rank is not None:
        if rank == -1:
            print(f"{keyword}沒有排名")
        else:
            print(f"{keyword}排名第{rank}")

梯子有點問題,先放個必應上查詢的截圖吧。

到此這篇關于使用Python制作一個批量查詢搜索排名工具的文章就介紹到這了,更多相關Python查詢搜索排名工具內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 30秒學會30個超實用Python代碼片段【收藏版】

    30秒學會30個超實用Python代碼片段【收藏版】

    許多人在數(shù)據(jù)科學、機器學習、web開發(fā)、腳本編寫和自動化等領域中都會使用Python,它是一種十分流行的語言。本文將簡要介紹30個簡短的、且能在30秒內掌握的代碼片段,感興趣的朋友一起看看吧
    2019-10-10
  • 詳談python http長連接客戶端

    詳談python http長連接客戶端

    下面小編就為大家?guī)硪黄斦刾ython http長連接客戶端。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 五個Jupyter?Notebook實用魔法命令分享

    五個Jupyter?Notebook實用魔法命令分享

    Jupyter?Notebook是一個開源的交互式編程環(huán)境,用于創(chuàng)建和共享包含實時代碼、文本等,本文主要來和大家分享一些有趣的Jupyter?Notebook魔法命令,需要的可以參考一下
    2023-07-07
  • 解讀Pandas和Polars的區(qū)別及說明

    解讀Pandas和Polars的區(qū)別及說明

    Pandas和Polars是Python中用于數(shù)據(jù)處理的兩個庫,Pandas適用于中小規(guī)模數(shù)據(jù)的快速原型開發(fā)和復雜數(shù)據(jù)操作,而Polars則專注于高效數(shù)據(jù)處理,支持大規(guī)模數(shù)據(jù)和高性能計算
    2025-02-02
  • Python教程之無限迭代器的使用詳解

    Python教程之無限迭代器的使用詳解

    Python的Itetool是一個模塊,它提供了各種函數(shù),這些函數(shù)在迭代器上工作以產(chǎn)生復雜的迭代器。該模塊作為一個快速,內存效率的工具,可以單獨使用或組合使用以形成迭代器代數(shù)。本文就來和大家詳細聊聊無限迭代器,感興趣的可以了解一下
    2022-09-09
  • Opencv實現(xiàn)傾斜圖片轉正示例

    Opencv實現(xiàn)傾斜圖片轉正示例

    本文主要介紹了Opencv實現(xiàn)傾斜圖片轉正示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • 基于PyQt5制作一個windows通知管理器

    基于PyQt5制作一個windows通知管理器

    python框架win10toast可以用來做windows的消息通知功能,通過設定通知的間隔時間來實現(xiàn)一些事件通知的功能。本文將利用win10toast這一框架制作一個windows通知管理器,感興趣的可以參考一下
    2022-02-02
  • python關于倒排列的知識點總結

    python關于倒排列的知識點總結

    在本篇文章里小編給大家分享的是一篇關于python關于倒排列的知識點總結,有需要的朋友們可以參考下。
    2020-10-10
  • python 自動化辦公之批量修改文件名實操

    python 自動化辦公之批量修改文件名實操

    這篇文章主要介紹了python 自動化辦公之批量修改文件名實操,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • pytorch?tensor按廣播賦值scatter_函數(shù)的用法

    pytorch?tensor按廣播賦值scatter_函數(shù)的用法

    這篇文章主要介紹了pytorch?tensor按廣播賦值scatter_函數(shù)的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論