Python进行谷歌Search分析-完整攻略
在Python中,我们可以使用Googlesearch-python这个库,来获取谷歌搜索结果。使用Googlesearch-python库可以快速、方便的进行谷歌搜索、分析。
安装Googlesearch-python库
使用pip命令进行安装:
pip install googlesearch-python
搜索谷歌
使用Googlesearch-python库的search()函数可以快速搜索谷歌,并返回搜索结果。
from googlesearch import search
query = "Python谷歌搜索" # 搜索的关键字
for j in search(query, num=10):
print(j)
以上代码会在控制台中输出10条搜索结果。
search()函数的参数num控制返回的搜索结果数。默认返回10条搜索结果。如果需要返回更多搜索结果,可以通过设置num参数进行调整。
谷歌搜索结果分析
使用 requests 和 BeautifulSoup 库可以对谷歌搜索结果进行进一步的分析和处理。
import requests
from bs4 import BeautifulSoup
search_result = requests.get('https://www.google.com/search?q=Python谷歌搜索', headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(search_result.text, 'html.parser')
result_div = soup.find_all('div', attrs={'class': 'g'})
links = []
titles = []
descriptions = []
for r in result_div:
# 获取每个搜索结果的链接、标题、描述
link = r.find('a', href=True)
if link:
links.append(link['href'])
title = r.find('h3')
if title:
titles.append(title.text)
description = r.find('span', attrs={'class': 'aCOpRe'})
if description:
descriptions.append(description.text)
print(links)
print(titles)
print(descriptions)
以上代码可以获取搜索结果页面中,搜索结果的链接、标题、描述等信息。
示例1 – 统计搜索结果中的URL域名
import requests
from bs4 import BeautifulSoup
from tld import get_tld # pip install tld
query = "Python谷歌搜索"
search_result = requests.get(f'https://www.google.com/search?q={query}', headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(search_result.text, 'html.parser')
result_div = soup.find_all('div', attrs={'class': 'g'})
domains = {}
for r in result_div:
# 获取每个搜索结果页面的URL
link = r.find('a', href=True)
if link:
url = link['href']
# 获取URL的域名
domain = get_tld(url)
# 统计URL域名的出现次数
if domain in domains:
domains[domain] += 1
else:
domains[domain] = 1
# 按照出现次数排序
sorted_domains = sorted(domains.items(), key=lambda x: x[1], reverse=True)
for d in sorted_domains:
print(d[0], d[1])
以上代码会对搜索结果中每个页面的URL进行统计,并按照出现次数排序打印出来。
示例2 – 获取搜索结果页面的第一个概述信息
import requests
from bs4 import BeautifulSoup
query = "Python谷歌搜索"
search_result = requests.get(f'https://www.google.com/search?q={query}', headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(search_result.text, 'html.parser')
result_div = soup.find_all('div', attrs={'class': 'g'})
descriptions = []
for r in result_div:
# 获取每个搜索结果页面的概述信息
description = r.find('span', attrs={'class': 'aCOpRe'})
if description:
descriptions.append(description.text)
print(descriptions[0]) # 输出搜索结果页面中第一个概述信息
以上代码可以获取搜索结果页面中的第一个概述信息,并输出到控制台中。