正则表达式和beautifulsoup返回“'NoneType'对象不可调用”错误

时间:2016-07-01 12:49:58

标签: python regex beautifulsoup

我正在尝试在http://regexr.com/3dnut处实现正则表达式查询。

到目前为止,这是我的代码:

from bs4 import BeautifulSoup
import urllib
r = urllib.urlopen('http://www.indeed.com/resumes?q=banking&l=london&co=GB&start=0').read()
soup = BeautifulSoup(r, "lxml")
letters = soup.search("\/r\/([^:\/\s]+)\/(\w+)")
print letters

我期待一系列匹配,但我收到以下错误消息:

Traceback (most recent call last):
  File "D:/cv-scraper/main.py", line 5, in <module>
    letters = soup.search("\/r\/([^:\/\s]+)\/(\w+)")
TypeError: 'NoneType' object is not callable

我该如何解决?

1 个答案:

答案 0 :(得分:1)

search()中没有BeautifulSoup方法。抛出此特定错误的原因是点符号具有特殊含义 - 它是find()的快捷方式。 soup.search基本上已转换为soup.find("search"),会尝试找到标记search。它失败并返回None然后被调用。你最终得到的是None("\/r\/([^:\/\s]+)\/(\w+)")失败的None当然是不可调用的。