你想用Python自动化地将所有谷歌搜索结果刮成一个文件吗?你想在几分钟内知道你的搜索查询的答案吗?这将是非常棒的!对吗?
你不需要打开谷歌浏览器并在搜索框中输入你的搜索查询。也不需要手动滚动超过10页的URL页面来获得查询的答案。所有的一切都将自动为你完成。很好!对吗?
使用Selenium webdriver和Python可以实现谷歌搜索结果的自动化。 你只需要对Python和HTML编程有一个基本的了解就可以实现这一点。
在这篇文章中,你将学习如何在google.com中填写搜索查询,并使用webdriver
点击提交。然后,你将学习刮除带有标题的网站URL,并获得查询的答案。
我们将向你解释google搜索结果页面的每个元素以及如何提取它们。
为什么自动化谷歌搜索结果如此重要?主要原因是你可以在不多的时间内得到一个文件中组织的所有细节,没有任何错误和遗漏。例如,如果你把google中的10页URLs全部复制到你的文件中,以便进一步研究。你可能会复制部分URLs,也可能会遗漏一些重要的网页URLs。这对你来说是一项非常费力和无聊的工作。
我们还可以在哪些方面使用Selenium webdriver这个强大的工具。你可以通过Selenium webdriver在Facebook、Twitter等网站上自动发帖。它还可以用来刮取竞争对手的产品价格进行价格比较。
我们可以开始学习了吗?
什么是Selenium?
Selenium是一个开源软件,用于自动化网络应用程序的测试目的。简单地说,它是一个免费软件,可以使你的浏览器自动化。由Jason Huggins在2004年创建,用于自动化网络测试,他是Thoughtworks的一名工程师。他的日常职责是测试网络应用程序。人工测试是如此乏味和耗时。因此,他用Java脚本创建了这个软件,使浏览器的交互自动化。
一开始,Selenium只限制访问google.com上的页面。它不能用于其他搜索引擎,如Yahoo.com。为了克服这个问题,计算机工程师开发了新版本的Selenium。
你可以在下面的表格中看到Selenium在这段时间内的发展。
创造者 | 软件名称 | 开发情况 |
Paul Hammant | Selenium远程控制或Selenium 1 | 创建HTTP代理服务器来欺骗浏览器,使其认为Selenium来自同一个域。 |
Patrick Lightbody | Selenium Grid | 缩短测试执行时间。 |
Shinya Kasatani | Selenium IDE | 建立Fireworks扩展,通过记录和回放功能实现浏览器自动化。这进一步减少了执行时间。 |
西蒙-斯图尔特 | WebDriver | 在操作系统层面而不是在JavaScript上实现浏览器的自动化。 |
Selenium团队 | Selenium 2 | 合并了Web Driver和Selenium RC,形成强大的软件,以实现更快的自动化。 |
什么是Web驱动?
它是一个现代工具,用于实现跨浏览器平台的自动化网络测试。测试在不同的浏览器中执行,如Firefox、Google Chrome、Internet Explorer和Safari。
网络驱动程序支持java、PHP、Python、Perl和Ruby编程语言。
网络驱动的主要优点如下:
- 安装简单,因为不需要安装服务器。
- 驱动程序和浏览器之间直接通信。
- 真实的浏览器互动,执行速度更快。
- 可以在任何操作系统中执行。
- 由于自动测试,减少了雇用测试人员的费用。
浏览器可以直接与其中一个驱动进行通信,如chrome驱动、Firefox选项、Safari选项、Edge驱动和Internet Explorer选项。
你可以用selenium web驱动来自动执行常规任务,如发推特、谷歌搜索、搜索LinkedIn资料和网络搜刮。
此外,我们还可以用它来自动填写表格,如项目管理的时间表。
Selenium网络驱动的局限性在于它不能支持基于窗口的应用程序。它只能支持基于网络的应用程序,不能测试移动应用程序。它不能支持新的浏览器,不能处理验证码和条形码。
谷歌搜索结果页面的要素
如果你想了解一个话题、信息,或者想以最优惠的价格购买产品,你必须在大多数情况下通过谷歌搜索,对吗?你有没有分析过谷歌搜索结果页的要素?谷歌搜索结果页面或我们简称为SERPS,有不同的元素。诸如有机结果、 知识图谱、人们还问、视频、热门故事、相关搜索等元素。在本节中,我们将详细了解它。
有机结果
谷歌将显示所有自然收到的结果,而不是付费的。这些结果是根据搜索查询并根据谷歌的秘密算法显示的。搜索引擎优化也被用于有机搜索结果的排名。这些结果包括蓝色链接中的文字,绿色显示的URL,以及网站的片段或简短描述。
人们还问?
根据你的搜索查询。谷歌使用其算法和前一个用户的查询来显示相关问题的块。当展开每个问题块时,你可以看到回答该问题的片段,并有URL链接。这个块出现在一些有机或付费结果之后。只要你点击最后一个块,它就会弹出更多的问题块。
知识图谱。
当你搜索一个主题,例如 "python "或品牌/公司名称 "Apple"。谷歌收集了大量的数据,并以有效的方式在信息框中呈现给你。这是我们的目标区域,为你的搜索查询获得答案。
在这个元素中,你可以以更简洁的方式看到关于搜索查询的所有信息。 谷歌从可靠的资源中获取数据,如维基百科、中情局世界实录、模式信息等。它在桌面上的SERPS屏幕的右侧。
你可以从图片2中标记的以下五个元素中获得你的搜索查询的所有答案
- 图片:这些是您的搜索查询的图片。例如,显示的是Python 3 和Python标志。
- 标题:这里显示的是标题。
- 描述: 显示您的搜索查询的基本信息。例如,在这一部分解释了什么是Python。
- 副标题:显示与您的搜索查询有关的重要事实。
- URL链接 :显示与搜索查询相关的一些重要主题。
视频
SERP显示某些关键词的视频。它在其他元素中显示为一个单独的元素,称为视频。通常情况下,SERP会从YouTube上提取视频,如果嵌入的视频可用,则从网站上提取。最初,你可以在 SERP 中看到 3 个视频。当你点击箭头按钮时,你可以查看更多的视频。SEMrush指出,谷歌只显示6%的搜索查询视频结果。是这样吗?你可以研究一下。
相关搜索
这个功能显示在搜索结果的底部。尽管它在底部,但对我们来说是非常重要的数据。从谷歌算法和以前的用户搜索中,显示了关键词。你可能无法根据你的搜索查询找到必要的信息。但是从相关的搜索关键词,你可以找到你想要的信息。从相关的搜索结果中,你的研究会有很好的想法。
建立自动化的框架
好了,你已经了解了谷歌的元素是什么。很好!现在让我们开始使用Selenium、Web Driver和Python来实现Google查询的自动化。
在进一步进行之前,我希望你已经熟悉了基本的HTML结构。让我们开始吧,不要再拖延了。
安装库
首先,我们应该安装Selenium。
打开终端或命令,输入以下命令
pip install selenium
然后用这个 链接安装Webdriver Chrome驱动。
最后,使用下面的命令安装CSV
pip install python-csv
现在我们的框架已经设置好了,可以进一步进行谷歌搜索的自动化。
在深入学习代码之前,让我们通过程序来获取CSV文件中的谷歌搜索结果。
自动化谷歌搜索的程序
现在让我们深入到编码中,打开你的Python空闲外壳
导入Python库
首先,让我们使用代码导入Selenium Webdriver、Sleep和CSV。
from selenium import webdriver
from time import sleep
import csv
访问和浏览网页
我们告诉电脑打开chrome浏览器,进入www.google.com,搜索查询 "Python"。
# specify path of Chrome Driver, code 1
driver = webdriver.Chrome('/Users/mohamedthoufeeq/Desktop/chromedriver')
# use driver.get()method to navigate the web page by giving URL address
driver.get('https://www.google.com/') code 2
# locate "English" Language by _Xpath / to change language to English, code 3
English = driver.find_element_by_xpath('//*[@id="SIvCob"]/a[2]')
English.click()
变量driver
是谷歌浏览器的一个实例。我们将使用这个变量驱动来执行命令。找到你的电脑上安装的Chrome驱动程序的位置。在代码1中,你必须把你的Chrome驱动的位置路径写进去。当你执行代码1和代码2时,Google Chrome浏览器将打开并自动进入google.com。然后,使用driver.get()
的方法来打开网页。下一行代码是可选的,如果谷歌网页是以其他语言而不是ENGLISH打开的。然后使用代码3将语言改为英语。让我们更详细地看一下这段代码。
通过在网页上点击右键并点击检查,打开HTML脚本(见图5)。
在HTML中,有不同类型的属性和标签,如class
,id
,href
,a
,div
,p
等,以访问特定元素。我们可以使用find_element_ by_method
来访问所有元素。
这些方法如下所示:
find_element_by_class_name
find_element_by_css_selector
find_element_by_id
find_element_by_link_text
find_element_by_name
find_element_by_partial_link_text
find_element_by_tag_name
find_element _by_xpath
点击标记的(下图中的黑色圆圈)检查元素图标,将鼠标悬停在网页上的任何元素上。悬停在 "ENGLISH "链接上,以检查该元素。 在HTML中找到href
元素,然后点击right > copy > copy xpath
,再粘贴到查找栏。
你得到的xpath是"//*[@id="SIvCob"]/a[1]"
,有属性id
,有标签a
。 使用这个xpath
来访问代码3中google主页的英文链接(见图片6)。
让我们来讨论一下Selenium中的xpath。它是一个XML路径,用于浏览HTML文档中的属性和标签。xpath的语法是
xpath=//tagname[@attribute='value']
// : select current Path.
Tagname : tagname of particular path
@ : select attribute
Attribute : attribute of the particular path
Value : name of the attribute
如果你不能用一般的选择器(如_classname
或_ id
)找到元素,那么就用xpath来寻找元素。
因此,我们选择XPath来寻找英文链接。
一旦你收到存储在英文变量中的英文链接,点击同样的链接就可以继续。Web驱动的click()
方法被用来与网页交互(见第二行代码3)。
在搜索框中输入搜索查询 "python "并输入。然后创建这4行代码,如下所示。
# locate search query form in html script by _name, code 1
search_query=driver.find_element_by_name("q")
# use send_keys() to simulate key strokes/ type the search term "python"b code 2
search_query.send_keys("python")
#locate Google Search button by _xpath code 3
google_search_btn =driver.find_element_by_xpath('//*[@type="submit"]')
# use submit() to mimic enter key code 4
google_search_btn.submit()
第一步是寻找搜索框的HTML元素。创建search_query
变量来存储搜索框元素,以便进行按键操作。在HTML脚本中,当检查搜索框时,你可以看到属性name=“q”
(见图片7)。使用这个属性来定位搜索查询,如代码1所示。
在代码2中,使用send_keys()
方法来提示键入 "python "的按键。为了继续进行,我们必须点击提交按钮。代码3和代码4完成了我们预定的动作。用于定位谷歌搜索按钮元素属性的Xpath[@type="submit”]
(见图片8)。
注意,星号 "*"是用来搜索任何标签的。
很好!你有一个自动的搜索查询。你有一个自动搜索查询。
现在让我们开始编写代码来提取谷歌搜索元素。
有机结果
这些结果给了我们所有的网站,通常是使用谷歌的秘密算法和SEO关键词得出的。
# locate URL for organic results element from html script by _xpath, code 1
organic_result = driver.find_elements_by_xpath('//*[@class="yuRUbf"]/a[@href]')
# get all URL and store it in variable "url_list1" list using for loop, code 2
url_list1 = []
for organic_url in organic_result:
if not 'google' in organic_url.get_attribute("href"):
url_list1.append(organic_url.get_attribute("href"))
# locate title of URL for organic results element from html script by _xpath , code 3
url1_title = driver.find_elements_by_xpath('//*[@class="LC20lb DKV0Md"]')
# get all title of the URL and store it in variable "title_url_list1" list using for loop, , code 4
title_url_list1 =[]
for title_url1 in url1_title :
text = title_url1.text
title_url_list1.append(text)
在网页中,将第一个URL搜索结果的标题悬停在“https://
www.python.org "并检查该元素。
你可以看到 href
链接属性。然后确定它属于哪个类别,这个href链接是class = “yuRUbf”
你使用代码1创建xpath来定位这个有机结果的URL。
Xpath的更多细节。
Xpath in more detail:
('//*[@class="yuRUbf"]/a[@href]')
// - selecting current path of class = “yuRUbf”
* - selecting current tagname of class = “yuRUbf” which is div
[@class="yuRUbf"] - selecting the class with value "yuRUbf"
/a[@href] - selecting href element after the class
这个有机URL元素被存储在变量organic_result
。代码2将有机结果元素的URL存储在名为url_list1
的列表 中。为了获得href即URL链接的属性,使用get_attribute
方法。另外,我们需要从google中删除URL链接,因为这个网站属于 "人们也问 "元素。之后,有机元素的每个URL的标题将被提取并存储在列表 "title_url_list1
"中。为了做到这一点,再次检查元素的标题 "Welcome to Python.org "并确定xpath。类是 "LC20lb DKV0Md "来定位元素的标题(参考图片10)并使用代码3。使用for循环将标题存储到一个列表title_url_list1
,并追加 到列表中,如代码4所示。
你的搜索查询的有机结果被提取并存储在各自的变量中,如上所示。接下来,我们可以转到下一个元素。
人们也问
在这个元素中,我们可以发现其他人问了哪些与你的搜索查询相关的问题。
这对你的研究内容来说是有用的数据。
现在,让我们按照上述类似的步骤来搜刮 "人们也问 "元素。
首先,使用检查元素选项找到HTML中**"人们也问 "**元素的URL链接。
# locate URL in "People also ask" element from html script by _xpath, code 1
People_quest = driver.find_elements_by_xpath('//*[@class="AuVD cUnQKe"]//a[@href]')
# get all URL and store it in variable "url_list2" list using for loop, code 2
url_list2 = []
for People_url in People_quest :
if not 'google' in People_url.get_attribute("href"):
if not 'search' in People_url.get_attribute("href"):
url_list2.append(People_url.get_attribute("href"))
# locate title of URL in "People also ask" element from html script by _xpath , code 3
url2_title = driver.find_elements_by_xpath('//*[@class="iDjcJe IX9Lgd wwB5gf"]')
# get all title of the URL and store it in variable "title_url_list2" list using for loop , code 4
title_url_list2 =[]
for title_url2 in url2_title :
text = title_url2.text
title_url_list2.append(text)
你可以使用class = “AuVD cUnQKe”
,得到People also ask元素的URL。这个类只属于People also ask元素(见图11)。在代码1中,创建People_quest
变量来存储People also ask的URL元素。参考图片12,从People also ask元素中获取URLs的标题。
接下来在url_list2和title_url_list2中存储网页的标题和URLs。
现在让我们转到从相关搜索元素中提取搜索词。
相关搜索
这个元素提供了与你的搜索查询相关的新的好主意。它在页面的最后一面。有8个独特的搜索词来自其他人的搜索和谷歌的算法。让我们看看如何废止这个极好的元素相关搜索。
向下滚动页面,右击这个元素,然后点击检查元素。
# locate URL for Related searches element from html script by _xpath, Code 1
related_search = driver.find_elements_by_xpath('//a[@class ="k8XOCe R0xfCb VCOFK s8bAkb"][@href]')
# get all URL and store it in variable "url_list5" list using for loop
url_list5 = []
for related_url in related_search :
url_list5.append(related_url.get_attribute("href"))
# locate title of URL for Related searches element from html script by _xpath
url5_title = driver.find_elements_by_xpath('//*[@class="s75CSd OhScic AB4Wff"]')
# get all title of the URL and store it in variable "title_url_list5" list using for loop
title_url_list5 = []
for title_url5 in url5_title :
text = title_url5.text
title_url_list5.append(text)
related_search
变量使用find_elements_by_xpath
方法存储相关搜索元素的URL。
在class = "k8XOCe R0xfCb VCOFK s8bAkb "之前有一个标签 "a"。所以xpath的语法是('//a[@class ="k8XOCe R0xfCb VCOFK s8bAkb"][@href]'
),如代码1所示。
接下来使用上述代码将相关搜索的网页的标题和URL存储在列表变量title_url_list5
和url_list5
。
知识图谱
这是谷歌搜索结果页面中一个有趣的新元素。在这个元素中,你可以在描述部分回答你的搜索查询。
这些信息以浓缩的形式显示,有文字、图片、视频和URL。
让我们把知识图谱分成几个部分,并从中刮出一些基本数据。
- 顶部图片
- 主要文字标题
- 描述/片段
- 小标题
- URL链接
提取主要文本标题的细节。
检查标题的元素,确定属性和标签。
# locate the main title for Knowledge Graph element from html script by _xpath
Know_Main_head = driver.find_elements_by_xpath('//*[@class="K20DDe R9GLFb JXFbbc LtKgIf a1vOw BY2RHc"]')
# get the main title and store it in variable "text_url3" using for loop
for title_url3 in Know_Main_head:
text_url3 = title_url3.text
知识图谱类的主标题是 "K20DDe R9GLFb JXFbbc LtKgIf a1vOw BY2RHc"。
该元素被存储在变量Know_Main_head
。然后文本细节被存储在text_url3
。尽管在主标题中是一个单一的数据字符串。该元素被存储在一个列表中,.text
方法不能在列表中工作,所以我们使用for循环来获取细节
提取描述/片段的细节。
使用检查元素图标识别这个元素的属性和标签。
# locate description of Knowledge Graph element from html script by _xpath
Know_desc = driver.find_elements_by_xpath('//*[@class="PZPZlf hb8SAc"]')
# get description and store it in variable "text_desc" using for loop
for desc in Know_desc:
text_desc = desc.text
该类的属性是 "PZPZlf hb8SAc",它被存储在Know_desc
变量中。请参考图片16。
使用for循环和.text
方法,我们得到该元素的文本。
提取副标题的细节。
这些副标题在片段的下面。并有关于搜索查询的有用事实。
确定这个元素的属性和标签以提取数据。
# locate title of sub head for Knowledge Graph element from html script by _xpath
Know_subhead = driver.find_elements_by_xpath('//*[@class="rVusze"]')
# get all title of the URL and store it in variable "title_subhead" list using for loop
title_subhead = []
for subhead in Know_subhead:
text = subhead.text
title_subhead.append(text)
副标题的类属性 是rVusze
,它被存储在变量Know_subhead
(见图片17)。
同样,使用for循环和.text()
方法,将事实存储在列表变量title_subhead
。
在此,列表中有更多的子标题项目。
提取网站标题和URLs
使用hover动作检查元素的网页名称和Url链接。
# locate title of URL for Knowledge Graph element from html script by _xpath
Know_links_name = driver.find_elements_by_xpath('//*[@class="OS8yje oJc6P QTsT3e"]')
# get all title of the URL and store it in variable "title_url_list3" list using for loop
title_url_list3 = []
for title_url3 in Know_links_name:
text = title_url3.text
title_url_list3.append(text)
# locate URL for Knowledge Graph element from html script by _xpath
Know_graph = driver.find_elements_by_xpath('//*[@class ="mFVw3b"]//a[@href]')
# get all URL and store it in variable "url_list6" list using for loop
url_list6 = []
for graph_url in Know_graph :
url_list6.append(graph_url.get_attribute("href"))
你可以识别网页名称和URL链接属性的class = " OS8yje oJc6P QTsT3e "和class = "mFVw3b"(见图18-20)。
变量Know_links_name
,存储网页名称的元素。变量Know_graph
存储了知识图谱中的网页的URL链接。
使用for循环,.text
和get_attribute
方法,我们得到一个网页名称和URL链接的列表。
你得到了知识图谱中的所有项目并存储在变量列表中。
现在你可以转到下一个有趣的元素。
# locate URL for Videos element from html script by _xpath
Video = driver.find_elements_by_xpath('//a[@class ="X5OiLe"][@href]')
# get all URL and store it in variable "vid_url" list using for loop
vid_url = []
for vid in Video :
vid_url.append(vid .get_attribute("href"))
# locate title of URL for Videos element from html script by _xpath
Video_title = driver.find_elements_by_xpath('//*[@class="fc9yUc oz3cqf p5AXld"]')
# get all title of the URL and store it in variable "vid_title" list using for loop
vid_title = []
for Vid_text in Video_title :
text = Vid_text.text
vid_title.append(text)
将鼠标悬停在视频的URL和标题上以获得标签和属性(见图21-22)。
视频Url的xpath是‘//a[@class ="X5OiLe"][@href]’
,其中a是视频URL链接的标签,在路径中显示在第一位。这些元素被存储在Video Variable中。
视频标题的xpath是‘//*[@class="fc9yUc oz3cqf p5AXld”]’
,它被存储在Video_title
变量中。
标题和URL链接被存储在vid_title
和vid_url
列表变量中。
祝贺你! 你已经使用Selenium从Google搜索结果页面的元素中提取了所有的细节。
为了使程序更顺利地运行而不出错,还有几点需要补充:
- 使用
[sleep](https://blog.finxter.com/python-selenium-wait-function/ "Python Selenium Wait Function")
函数让程序等待,这样find_all_elements
,就有足够的时间来提取HTML元素。
from time import sleep
# use sleep method between each Google elements
sleep(1)
- 我上面写的脚本只提取了第一页的搜索结果。你可以添加几行代码来搜刮更多页面的结果。为此目的,使用For循环和驱动.get方法来访问下一页,如下图所示。
for i in range(7):
Next_page = driver.find_element_by_xpath('//*[@id="pnnext"]')
''' Script for extracting Search result from Organic Result google elements'''
….
Next_page.click()
sleep(1)
- 你应该只为从有机结果元素中提取细节而改变下一页,而不是在其他元素上。因为这些元素只在第一页中可用。下面的代码将完成预定的动作。
for i in range(7):
Next_page = driver.find_element_by_xpath('//*[@id="pnnext"]')
''' Script for extracting Search result from Organic Result google elements'''
while i == 0:
''' Script for extracting Search result from "People also ask" google element'''
''' Script for extracting Search result from "Related searches" google element'''
…
i = i + 1
Next_page.click()
sleep(1)
导出数据到CSV文件
以下是将所有元素的结果导出到Google_Search.csv
文件的代码。
with open('Google_Search.csv','w', newline = "") as Google:
Main_header1 = ["People also ask"]
People_header_writer = csv.DictWriter(Google, fieldnames = Main_header1)
People_header_writer.writeheader()
header1 = ['Question','URL']
People_writer = csv.DictWriter(Google, fieldnames = header1)
People_writer.writeheader()
for a,b in zip(title_url_list2,url_list2):
People_writer.writerow({'Question' : a , 'URL' : b })
Main_header2 = ["Related Search"]
Related_header_writer = csv.DictWriter(Google, fieldnames = Main_header2)
Related_header_writer.writeheader()
header2 = ['Search Terms','URL']
Related_writer = csv.DictWriter(Google, fieldnames = header2)
Related_writer.writeheader()
for c,d in zip(title_url_list5,url_list5):
Related_writer.writerow({'Search Terms' : c , 'URL' : d })
Main_header3 = ["Knowledge Graph"]
Knowledge_header_writer1 = csv.DictWriter(Google, fieldnames = Main_header3)
Knowledge_header_writer1.writeheader()
Know_Main_header = [text_url3]
Know_Main_header_writer = csv.DictWriter(Google, fieldnames = Know_Main_header)
Know_Main_header_writer.writeheader()
Know_descp = [text_desc]
Know_descp_writer = csv.DictWriter(Google, fieldnames = Know_descp)
Know_descp_writer.writeheader()
Know_subhead_header = ["subhead"]
Know_subhead_writer = csv.DictWriter(Google, fieldnames = Know_subhead_header)
Know_subhead_writer.writeheader()
for i in zip(title_subhead):
Know_subhead_writer.writerow({'subhead' : i})
header3 = ['Title','URL']
Know_writer = csv.DictWriter(Google, fieldnames = header3)
Know_writer.writeheader()
for e,f in zip(title_url_list3,url_list6):
Know_writer.writerow({'Title' : e , 'URL' : f })
Main_header4 = ["Videos"]
Video_header_writer1 = csv.DictWriter(Google, fieldnames = Main_header4)
Video_header_writer1.writeheader()
header4 = ['Title','URL']
Video_writer = csv.DictWriter(Google, fieldnames = header4)
Video_writer.writeheader()
for g,h in zip(vid_title,vid_url):
Video_writer.writerow({'Title' : g , 'URL' : h })
Main_header5 = ["Organic Results"]
Organic_header_writer1 = csv.DictWriter(Google, fieldnames = Main_header5)
Organic_header_writer1.writeheader()
header5 = ['Web Site Name','URL']
Organic_writer = csv.DictWriter(Google, fieldnames = header5)
Organic_writer.writeheader()
for j,k in zip(title_url_list1,url_list1):
Organic_writer.writerow({'Web Site Name' : j , 'URL' : k })
标题和URL的细节被存储在单独的列表变量中。我们必须将其转换为字典,并将数据导出到csv文件。csv.DictWriter
方法用于在CSV文件中写入数据。Zip函数被用来创建一个字典,其中标题是键,URL链接是值。
Google_Search.csv
文件的输出。
结论
Selenium可以使网页浏览器自动化,它是一个强大的工具,可以让你迅速从任何网页上收集有用的数据。你可以在一个文件中从SERP的元素中提取所有的URL和有关你查询的信息。这些信息对于进一步的研究是非常有用的。你也可以用Selenium webdriver从谷歌搜索结果中提取网站的信息。Automate Web Scrap被广泛用于不同的领域,如市场研究、价格比较、机器学习和产品开发。