将结果从机械化传递到BeautifulSoup

时间:2013-12-06 11:10:29

标签: beautifulsoup mechanize-python

当我尝试在以下代码中混合使用mechanize和BeautifulSoup时,我得到了一个:

from BeautifulSoup import BeautifulSoup
import urllib2
import re
import mechanize

br=mechanize.Browser()
br.set_handle_robots(True)
br.open('http://tel.search.ch/')
br.select_form(nr=0)
br.form["was"] = "siemens"
br.submit()
content = br.response
soup = BeautifulSoup(content)

for a in soup.findAll('a',href=True):
if re.findall('title', a['href']):
    print "URL:", a['href']

br.close()

从开头直到br.submit()的代码与mechanize以及与BeautifulSoup的for循环一起工作正常。但我不知道如何将br.submit()的结果传递给BeautifulSoup。 2行:

content = br.response
soup = BeautifulSoup(content)

显然是错的。我得到一个错误的汤= BeautifulSoup(内容):

  

TypeError:期望的字符串或缓冲区

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

尝试更改

content = br.response

content = br.response().read()

通过这种方式,内容现在具有可以传递给BeautifulSoup的html。