使用谷歌和python搜索并存储第一个链接?

时间:2017-06-21 15:23:52

标签: python-3.x web-scraping google-search

我正在尝试使用Google搜索并从搜索结果中获取第一个网址。我试图利用google custom search api。但对于这么简单的任务来说,这似乎是最重要的。因此,我试图使用我发现的这个有趣的包: https://pypi.python.org/pypi/google

这是我到目前为止所提出的

from google import search
url = search('my search entry', stop=1)
for result in url:
    print(url)

search()似乎返回了几个生成器对象。这是我的回报:

<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>
<generator object search at 0x10e230048>

但是,我想要第一个外部网址/链接。有没有办法做到这一点?我试过list() - 但generator似乎是空的。

2 个答案:

答案 0 :(得分:1)

您可以使用gabriel belini所述的Selenium。这是我现在为这个

写了一段时间的代码
  from selenium import webdriver
  import time
  chrome_path ="/usr/local/lib/python3.5/site-packages/selenium/chromedriver"

  driver =webdriver.Chrome(chrome_path)

  driver.get('https://google.com')


  driver.find_element_by_css_selector('input#lst-ib.gsfi').send_keys('Music')

 time.sleep(5)

 driver.find_element_by_name('btnG').click()

 time.sleep(3)

 element1 = driver.find_element_by_xpath("//*[@id='rso']/div[1]/div/div[1]/div/div/div/div/div[1]/cite")

 print(element1.text)

哪个输出 - &gt; https://www.youtube.com/channel/UC-9-kyTW8ZkZNDHQJ6FgpwQ

如果我在搜索框中搜索Music关键字,则返回的第一个结果是Youtube - 您可以在此处看到

enter image description here

您可以使用pip安装Selenium作为

  pip install -U Selenium

here下载chromedriver。上述脚本中的chrome_path是您保留chromedriver可执行文件的路径。

答案 1 :(得分:1)

http://pythonhosted.org/google/开始,搜索签名为

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

尝试设置num = 1并停止= 0.