我正在尝试解析如下所示的html:
<tbody>
<tr id="row1" class="background-off-white"></tr>
<td id="column_packet_nm__1">Text to be captured #1</td>
<tr id="row2" class="background-off-white"></tr>
<td id="column_packet_nm__2">Text to be captured #2</td>
<tr id="row3" class="background-off-white"></tr>
<td id="column_packet_nm__3">Text to be captured #3</td>
</tbody>
使用以下代码(python):
soup = bs(main_page, 'html.parser')
change = soup.find_all('td', {'id':'column_packet_nm__1'})
#print only first record among all, just for a confirmation
print(change[0].text)
但是问题是,每次说到它都会给我错误 “发生了异常:TypeError,类型为“ Response”的对象没有len()” 而且我不确定这段代码能否捕获所有这三行代码, 请帮忙。
答案 0 :(得分:0)
确保main_page
不是Response
对象(来自请求)。它应该是对象的字符串文本。看来您的main_page
变量是一个请求Response
对象。
所以,如果您在某处有这样的东西:
main_page = requests.get(url)
您可以使用.text
:
soup = bs.BeautifulSoup(main_page.text, 'html.parser')