当我尝试在以下代码中混合使用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:期望的字符串或缓冲区
有人可以帮忙吗?
答案 0 :(得分:0)
尝试更改
content = br.response
到
content = br.response().read()
通过这种方式,内容现在具有可以传递给BeautifulSoup的html。