【发布时间】:2017-08-10 11:47:28
【问题描述】:
我有这个 HTML 代码:http://imgur.com/a/dPNYI
我正在尝试提取并打印图像中突出显示的行
("some text").
"some text" 是第一个 div 的文本,class=chat-message 嵌套在 id=chat-messages 的 div 中(换句话说,我试图提取第一个子 div 的文本div id=chat-messages,而他所有的孩子在结构上都相似)。
我尝试过的:
import requests
from bs4 import BeautifulSoup
url = "the url this is used for"
r = requests.get(url)
soup = BeautifulSoup(r.content, 'lxml')
g_data = soup.find('div',{'class':'chat-message-content selectable'})
print(g_data.text)
这给了我错误:
AttributeError: 'NoneType' object has no attribute 'text'
好像g_data 是NULL。
我做错了什么?谢谢!
HTML 代码:
<html>
<head>
<title>
</title>
</head>
<body>
<div id="main">
<div data-reactroot="" id="app">
<div class="top-bar-authenticated" id="top-bar">
</div>
<div class="closed" id="navigation-bar">
</div>
<div id="right-sidebar">
<div id="chat">
<div id="chat-head">
</div>
<div id="chat-title">
</div>
<div id="chat-messages">
<div class="chat-message">
<div class="chat-message-avatar" style="background-image: url("https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/65/657dcec97cc00bc378629930ecae1776c0d981e0.jpg");">
</div>
<a class="chat-message-username clickable">
<div class="iron-color">
aloe
</div></a>
<div class="chat-message-content selectable">
<!-- react-text: 2532 -->some text<!-- /react-text -->
</div>
</div>
<div class="chat-message">
<div class="chat-message-avatar" style="background-image: url("https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/65/657dcec97cc00bc378629930ecae1776c0d981e0.jpg");">
</div>
<a class="chat-message-username clickable">
<div class="iron-color">
aloe
</div></a>
<div class="chat-message-content selectable">
<!-- react-text: 2533 -->some other text<!-- /react-text -->
</div>
</div>
<div class="chat-message">
</div>
<div class="chat-message">
</div>
<div class="chat-message">
</div>
<div class="chat-message">
</div>
【问题讨论】:
-
@akashkarothiya 那么我该如何提取“一些文本”呢?
-
刚刚尝试过这个网址:timsiteweb.free.fr/lxml.html,它成功了!也许问题发生在您提出请求之前?如果打印
r.content会发生什么? -
你是对的,这很奇怪..它打印(部分):而不是“主要”分区。知道为什么吗?
-
不知道,我看到一个假设:您的 HTML 似乎未完成(缺少许多
</div>和</body></html>)。也许尝试完成它?
标签: python beautifulsoup lxml