我有一个人和公司的列表,我正在尝试搜索谷歌,找出这些人的输入网址。
我的代码:
#!/usr/bin/python3
import json
import urllib2
import time
file = open('names_and_companies.txt', 'r')
lines =file.readlines()
file.close()
file_out = open('out-urls.txt', 'w')
for line in lines:
line = line.strip()
lst = line.split(",")
search_term = lst[0] + " " + lst[1] #construct a search term using name and company
search_term = search_term.replace(" ","+")
time.sleep(1)
encoded = urllib2.quote(search_term)
rawData = urllib2.urlopen ('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='+encoded).read()
jsonData = json.loads(rawData)
print "\n\n\n" + search_term + "\n\n\n"
searchResults = jsonData['responseData']['results']
print searchResults
for er in searchResults:
link = er['url']
if "www.linkedin.com" in link:
print link
file_out.write(lst[0] + " | " + lst[1] + " | " + link + "\n")
file_out.close()
当我运行它时,我收到以下错误:
追踪(最近一次通话): 文件“/Users/InNov8/Desktop/conference/delete.py”,第30行,in searchResults = jsonData ['responseData'] ['results'] TypeError:'NoneType'对象没有属性' getitem '
我知道之前已经介绍过这个主题,但是我是一个菜鸟,无法弄清楚如何将任何推荐的修复应用到我的特定代码中。
谢谢。
答案 0 :(得分:1)
jsonData ['responseData']返回None,所以你不能索引它(jsonData ['responseData'] ['results'])
一种可能的解决方法是检查jsonData ['responseData']是否为None:
responseData = jsonData['responseData']
if responseData is not None:
searchResults = responseData['results']
print searchResults
for er in searchResults:
link = er['url']
if "www.linkedin.com" in link:
print link
file_out.write(lst[0] + " | " + lst[1] + " | " + link + "\n")