【问题标题】:Passing results from mechanize to BeautifulSoup将结果从机械化传递到 BeautifulSoup
【发布时间】:2013-12-06 11:10:29
【问题描述】:

当我尝试在以下代码中混合使用 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。两行:

content = br.response
soup = BeautifulSoup(content)

显然是错误的。我收到一个关于 soup = BeautifulSoup(content) 的错误:

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

有人可以帮忙吗?

【问题讨论】:

  • 放一个断点并确定“内容”包含的内容将是我的起点......

标签: beautifulsoup mechanize-python


【解决方案1】:

尝试改变

content = br.response

content = br.response().read()

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2011-08-29
    • 2016-12-18
    • 1970-01-01
    • 2014-10-05
    • 2011-01-12
    • 2013-12-23
    相关资源
    最近更新 更多