我想写一个python脚本,它将拉动连续谷歌搜索的前三个链接的标题和网址。例如,我希望能够谷歌“3英里运行”,“4英里运行”和“5英里运行”,并从每个链接获得前三个链接。
我尝试修改我在此处找到的一些代码,允许您打印用户输入的一个Google搜索的最高结果。
我将整个块放在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 )
我不断收到意外的缩进错误,我想知道是否有人可以提供帮助。
答案 0 :(得分:1)
缩进错误只是由缩进问题引起的。
看起来很明显,但检查你的代码没有,比如混合使用标签和空格进行缩进。您的编辑器可能会显示与一个选项卡大小相同的4个空格。但是python不会这样看。
在Vi(或Vim)编辑器中,用空格替换制表符的命令是:
:1,$s/[CTRL-v][TAB]/ /g
如果不能,您可以手动删除并替换它们。有空格或制表符,但我建议使用空格。
复制并粘贴你的代码,它对我有用,所以把它放在这里的行为可能会使空格和制表符的混合规范化。
答案 1 :(得分:0)
使用ViM,您可以非常轻松地修复它:
:set et
:retab
:w
它可以帮到你:
:et
(:expandtabs
)告诉ViM优先选择空格; :retab
告诉ViM重建所有标签作为其首选项(空格); :w
保存您的文件更改。如果标签扩展到奇数空格,请撤消retab
,然后尝试:
:set tabstop=4
然后:retab
和:w
。
您可以告诉ViM始终以这种方式处理Python文件。编辑~/.vim/ftdetect/python.vim
(如果它不存在,请创建它):
au BufNewFile,BufRead *.py set filetype=python
au BufNewFile,BufRead *.pyw set filetype=python
au FileType python set et
au FileType python set tabstop=4