使用 google 和 python 搜索并存储第一个 link?
Searching using google and python and storing the first link?
我正在尝试使用 google 搜索并从搜索结果中获取第一个 URL。我试图利用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()
return几个生成器对象。这是我的 return:
<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>
不过,我想要第一个外部url/link。有没有办法做到这一点?我试过 list()
- 但 generator
似乎是空的。
您可以使用 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)
输出 -> https://www.youtube.com/channel/UC-9-kyTW8ZkZNDHQJ6FgpwQ
如果我在搜索框中搜索 Music
关键字,返回的第一个结果是 Youtube - 你可以在这里看到这个
您可以使用 pip
将 Selenium
安装为
pip install -U Selenium
并从 here 下载 chromedriver
。上面脚本中的 chrome_path
是您保存 chromedriver
可执行文件的路径。
从http://pythonhosted.org/google/开始,搜索的签名是
generator search(query, tld='com', lang='en', num=10, start=0, stop=None, pause=2.0)
尝试设置 num = 1 和 stop = 0。
我正在尝试使用 google 搜索并从搜索结果中获取第一个 URL。我试图利用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()
return几个生成器对象。这是我的 return:
<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>
不过,我想要第一个外部url/link。有没有办法做到这一点?我试过 list()
- 但 generator
似乎是空的。
您可以使用 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)
输出 -> https://www.youtube.com/channel/UC-9-kyTW8ZkZNDHQJ6FgpwQ
如果我在搜索框中搜索 Music
关键字,返回的第一个结果是 Youtube - 你可以在这里看到这个
您可以使用 pip
将 Selenium
安装为
pip install -U Selenium
并从 here 下载 chromedriver
。上面脚本中的 chrome_path
是您保存 chromedriver
可执行文件的路径。
从http://pythonhosted.org/google/开始,搜索的签名是
generator search(query, tld='com', lang='en', num=10, start=0, stop=None, pause=2.0)
尝试设置 num = 1 和 stop = 0。