首页 > 解决方案 > 当在 Python 中上传一个充满关键字的 csv 文件时,有没有办法从谷歌搜索结果中获取 url?

问题描述

给定关键字,是否可以从 Google 搜索结果页面获取 url?实际上,我有一个包含很多公司名称的 csv 文件。而且我希望该网站显示在谷歌搜索结果的顶部,当我上传该 csv 文件时,它会获取公司名称/关键字并将其放在搜索字段中。

例如: - stack overflow,这是我的 csv 文件中的一个条目,应该将其提取并放入搜索字段,它应该从搜索结果中返回最佳匹配/第一个 url。例如:- www.stackoverflow.com

这个返回的结果应该存储在我上传的同一个文件中,并在它搜索的关键字旁边。

我对这些概念了解不多,因此非常感谢任何帮助。谢谢!

标签: python-3.xcsvfilereadergoogle-search

解决方案


google 包对 beautifulsoup 有一个依赖项,需要先安装。

然后安装: pip install google

search(query, tld='com', lang='en', num=10, start=0, stop=None, pause=2.0)

query:我们要搜索的查询字符串。

tld:tld 代表顶级域,这意味着我们要在 google.com 或 google.in 或其他域上搜索我们的结果。

lang : lang 代表语言。

num:我们想要的结果数。

start:要检索的第一个结果。

stop:要检索的最后一个结果。使用 None 可以一直搜索。

pause:在 HTTP 请求之间延迟等待。延迟时间过短可能会导致 Google 阻止您的 IP。保持重大失误将使您的程序变慢,但它是安全和更好的选择。

返回:生成找到的 URL 的生成器(迭代器)。如果 stop 参数为 None,则迭代器将永远循环。

下面的代码是您问题的解决方案。

import pandas
from googlesearch import search 

df = pandas.read_csv('test.csv')

result = []
for i in range(len(df['keys'])):
    for j in search(df['keys'][i], tld="com", num=10, stop=1, pause=2): 
        result.append(j)

dict1 = {'keys': df['keys'], 'url': result}  
df = pandas.DataFrame(dict1) 
df.to_csv('test.csv')

示例输入格式文件图像:

示例输入格式文件

输出文件图像:

在此处输入图像描述


推荐阅读