我想点击谷歌搜索结果中的第一个结果。这是我的代码 我在哪里进入从csv文件中读取的chennai craiglist。所以我相信有机结果中的第一个链接将是chennai.craiglist.org。但我很安静,不知道如何做到这一点。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re
class Browse(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "http://google.com/"
filename = 'test.csv'
line_number = 1
with open(filename, 'rb') as f:
mycsv = csv.reader(f)
mycsv = list(mycsv)
self.cityname=mycsv[line_number][0]
self.username=mycsv[line_number][1]
self.password=mycsv[line_number][2]
self.verificationErrors = []
def test_browse(self):
driver = self.driver
driver.get(self.base_url + "/")
driver.find_element_by_id("gbqfq").send_keys(self.cityname)
我想知道这一行后会发生什么?
更新
现在我正在给予
driver.find_elements_by_xpath(".//*[@id='rso']//div//h3/a")[:1].click()
我不确定它是否会起作用。
答案 0 :(得分:5)
你选择的xpath
是'好'但可能不是最好的。
result = driver.find_elements_by_xpath("//ol[@id="rso"]/li")[0] //make a list of results and get the first one
result.find_element_by_xpath("./div/h3/a").click() //click its href
答案 1 :(得分:0)
这非常适合Google搜索结果。
results = driver.find_elements_by_xpath('//div[@class="r"]/a/h3') # finds webresults
results[0].click(). # clicks the first one
答案 2 :(得分:0)
我一直在python3中使用driver.find_element_by_tag_name("cite").click()
,为我工作。但是,如果只希望链接到顶部搜索结果,则如下所示使用请求和BeautifulSoup库会更快。
#!/usr/bin/env python3
import requests
from bs4 import BeautifulSoup
url = 'http://www.google.com/search?q=something'
page = requests.get(url)
soup = BeautifulSoup(page.text, "html.parser")
print(soup.find('cite').text)