Python 脚本,运行迭代谷歌搜索并打印热门结果和链接

标签 python loops for-loop google-search

我想编写一个Python脚本,它将提取连续谷歌搜索的前三个链接的标题和URL。例如,我希望能够通过 Google 搜索“3 英里跑”、“4 英里跑”和“5 英里跑”,并从中获取前三个链接。

我尝试修改我在此处找到的一些代码,这些代码允许您打印用户输入的一项 Google 搜索的顶部结果。

我将整个 block 放入 for 循环中,并使查询成为随 x 增加的特定搜索。

import urllib
import json as m_json

for x in range(3, 5): 
    query = 'x mile run'
    query = urllib.urlencode ( { 'q' : query } )
    response = urllib.urlopen ( 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&' + query ).read()
    json = m_json.loads ( response )
    results = json [ 'responseData' ] [ 'results' ]
    for result in results:
        title = result['title']
        url = result['url']   # was URL in the original and that threw a name error exception
        print ( title + '; ' + url )

不过,我不断收到意外的缩进错误,我想知道是否有人可以提供帮助。

最佳答案

缩进错误仅由缩进问题引起。

这似乎很明显,但检查你的代码是否有,比如用于缩进的制表符和空格的混合。您的编辑器可能会显示 4 倍的空格,其大小与一个选项卡相同。但Python并不这样看。

在 Vi(或 Vim)编辑器中,用空格替换制表符的命令是:

:1,$s/[CTRL-v][TAB]/    /g

如果失败,您可以手动删除并替换它们。使用空格或制表符,但我建议使用空格。

复制并粘贴您的代码,它对我有用,因此将其放在这里的行为可能已经标准化了空格和制表符的混合。

关于Python 脚本,运行迭代谷歌搜索并打印热门结果和链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35023259/

相关文章:

python - 使用 `GridSearchCV`来测试从管道中完全删除步骤的效果?

python - 哪些 PEP 是必读的?

javascript - 通过 Javascript 将手动红绿灯转换为自动

python - 如何在没有互联网连接的情况下从源代码安装 python?

python - 使用 python 创建 cassandra db 用户/角色

c# - 在 foreach 循环内的开关嵌套中使用 `continue` 关键字

python - 在 python 中创建一个循环

java - Java 中增强的 for 循环和迭代器

javascript - javascript 的奇怪之处 "undefined"

recursion - 第 i 个和第 i+1 个元素循环的惯用 clojure