假设工作示例代码的属性错误
Atribute error on a suposedly working example code
我正在尝试 Cookbooks 的解决方案。预期输出为
4243456
但我一直收到错误消息
Error: AttributeError: 'NoneType' object has no attribute 'group'
import re
from bs4 import BeautifulSoup
html = """
<div class="heading-dom view">
<script type="application/javascript">
window.realty = {"user_id":4243456};
<!--window.agency = < %- JSON.stringify(agency) % >;-->
<!--window.agency = < %- JSON.stringify({}) % >-->
</script>
</div>"""
pattern = re.compile(r'\{"user_id"\s*:\s*(\d+)\}')
soup = BeautifulSoup(html, "html.parser")
script = soup.find("script", text=pattern)
print(pattern.search(script.text).group(1))
变量 script
中没有文本。当我尝试这个时:
print(script.text)
这是我得到的输出:
''
我认为您正在尝试将变量 script
从数据类型 bs4.element.Tag
转换为 str
。为此,请将最后一行更改为:
print(pattern.search(str(script)).group(1))
输出:
4243456
完整代码如下:
import re
from bs4 import BeautifulSoup
html = """
<div class="heading-dom view">
<script type="application/javascript">
window.realty = {"user_id":4243456};
<!--window.agency = < %- JSON.stringify(agency) % >;-->
<!--window.agency = < %- JSON.stringify({}) % >-->
</script>
</div>"""
pattern = re.compile(r'\{"user_id"\s*:\s*(\d+)\}')
soup = BeautifulSoup(html, "html.parser")
script = soup.find("script", text=pattern)
print(pattern.search(str(script)).group(1))
我正在尝试 Cookbooks 的解决方案。预期输出为
4243456
但我一直收到错误消息
Error: AttributeError: 'NoneType' object has no attribute 'group'
import re
from bs4 import BeautifulSoup
html = """
<div class="heading-dom view">
<script type="application/javascript">
window.realty = {"user_id":4243456};
<!--window.agency = < %- JSON.stringify(agency) % >;-->
<!--window.agency = < %- JSON.stringify({}) % >-->
</script>
</div>"""
pattern = re.compile(r'\{"user_id"\s*:\s*(\d+)\}')
soup = BeautifulSoup(html, "html.parser")
script = soup.find("script", text=pattern)
print(pattern.search(script.text).group(1))
变量 script
中没有文本。当我尝试这个时:
print(script.text)
这是我得到的输出:
''
我认为您正在尝试将变量 script
从数据类型 bs4.element.Tag
转换为 str
。为此,请将最后一行更改为:
print(pattern.search(str(script)).group(1))
输出:
4243456
完整代码如下:
import re
from bs4 import BeautifulSoup
html = """
<div class="heading-dom view">
<script type="application/javascript">
window.realty = {"user_id":4243456};
<!--window.agency = < %- JSON.stringify(agency) % >;-->
<!--window.agency = < %- JSON.stringify({}) % >-->
</script>
</div>"""
pattern = re.compile(r'\{"user_id"\s*:\s*(\d+)\}')
soup = BeautifulSoup(html, "html.parser")
script = soup.find("script", text=pattern)
print(pattern.search(str(script)).group(1))