使用BeautifulSoup查询关键词谷歌搜索结果排名
谷歌关键词排名是当用户搜索关键词时网站在谷歌搜索中的位置。换句话说,Google 搜索基本上是在搜索索引中对数千亿个网页进行排序,以在几分之一秒内找到最相关、最有用的结果,并以一种可帮助您找到所需内容的方式呈现它们。
在本文中,我们将学习如何使用BeautifulSoup查询关键词谷歌搜索结果排名,首先需要了解 Google 排名的基础知识,然后继续使用 Python 进行查找。
我们使用了一个叫做requests的模块,它有一个方法get返回一个包含页面内容、状态等的响应,我们将响应保存到一个对象页面,并使用page.text方法从对象中提取页面内容,并使用漂亮的汤来使用 python 的内置 HTML 解析器解析 HTML 中的文档,以便我们可以访问 HTML 文档中的数据并从搜索的关键字中获取 URL。
需要的模块
我们需要在你的系统中通过pip分别安装requests和bs4这两个模块。请求:请求模块允许您发送 HTTP 请求并返回包含所有数据(例如状态、页面内容等)的响应。什么是Python模块,可参考python模块
pip install requests
Beautiful Soup:beautiful Soup模块允许您使用 python 的内置 HTML 解析器解析原始 HTML 或 XML 文档,以便我们可以从解析的文档中提取数据。推荐:Beautiful Soup教程
pip install bs4
查询关键词排名方法分析
1、我们需要提供要搜索的关键字和网站,如果它存在于给定数量的搜索查询中,则可以找到排名。
谷歌搜索的基本网址:“https://www.google.com/search?q=”
通过用“+”替换空格来添加关键字
添加 &num=30 以及将搜索结果的数量表示为 30
最终网址 = “ https://www.google.com/search?q=wordpress博客主题&num=30”
2.使用requests.get(url)方法向 Google 搜索发送 HTTP 请求,该搜索返回来自搜索引擎的响应,该响应作为对象保存到页面。
page = requests.get(“https://www.google.com/search?q=wordpress博客主题&num=30”)
3.使用page.text方法获取页面内容,使用beautiful Soup解析原始HTML。
soup = BeautifulSoup(page.text, 'lxml')
这将创建一个解析树,帮助访问 HTML 文档中的数据。
4.使用soup.find_all()找到具有相同类“ZINbbc xpd O9g5cc uUPGi”的div,因为它包含所有搜索查询以及<a> 标签内的URL,并将其存储在result_div 中。(参考下面有开发者工具的图片)
result_div = soup.find_all(‘div’, attrs={‘class’: ‘ZINbbc xpd O9g5cc uUPGi’})
这是开发人员工具的图像,其中所有搜索查询都具有相同的 div 类但包含不同的 URL,我们可以通过检查 <a> 标记中的 URL 看到这里的排名为 2。
5.迭代 result_div 并找到 <a> 标签并检查是否存在任何 URL,如果找到,则检查它是否与输入中提供的网站匹配并将排名添加到 rank_list。(rank_list 是一个字符串变量,因为可以出现多个等级)
link = div.find("a", href=True) if link['href'][7:7+len(website)] == website: rank_list += str(rank)+","
6.迭代结束后,返回rank_list并打印rank。下面是完整的实现:
import requests
from bs4 import BeautifulSoup
def find_rank(keyword, website, search_query):
rank, rank_list = 1, ""
url = "https://www.google.com/search?q="
keyword = keyword.replace(" ", "+")
url = url + keyword + "&num=" + str(search_query)
page = requests.get(url)
soup = BeautifulSoup(page.text, 'lxml')
result_div = soup.find_all(
'div', attrs={'class': 'ZINbbc xpd O9g5cc uUPGi'})
for div in result_div:
try:
link = div.find("a", href=True)
if link['href'][7:7 + len(website)] == website:
rank_list += str(rank) + ","
rank += 1
except:
pass
return (rank_list, "Website Missing")[rank_list == ""]
if __name__ == "__main__":
keyword = "wordpress博客主题"
website = "https://www.pythonthree.com/"
search_query = 50
rank = find_rank(keyword, website, search_query)
if rank == "Website Missing":
print(rank)
else:
print("Rank of Website :", rank[:-1])
输出:
Rank of Website : 28
总结
以上是晓得博客为你介绍的使用BeautifulSoup查询关键词谷歌搜索结果排名的全部内容,本文提供的是简单的查询原理,里面没有涉及爬虫的header信息,也没有区分国家和地区来查询排名,更没有使用用户代理来防止被浏览器屏蔽等措施。
推荐:python基础教程
Claude、Netflix、Midjourney、ChatGPT Plus、PS、Disney、Youtube、Office 365、多邻国Plus账号购买,ChatGPT API购买,优惠码XDBK,用户购买的时候输入优惠码可以打95折