0

当我尝试在以下代码中混合 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(content) 的错误:

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

任何人都可以帮忙吗?

4

1 回答 1

0

尝试改变

content = br.response

content = br.response().read()

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

于 2013-12-07T20:59:00.793 回答