gpt4 book ai didi

python - 为什么 urllib 不适用于本地网站?

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:33 26 4
gpt4 key购买 nike

我的 urllib 有问题,我似乎无法抓取我自己的本地网站。我可以让它打印出网站的所有内容,但正则表达式或其他东西不起作用。我使用当前代码得到的输出只是 []。所以我想知道我做错了什么?我有一段时间没有使用 urllib,所以很可能我错过了一些明显的东西。 Python 文件:

import urllib
import re

htmlfile=urllib.urlopen('IP of server')
htmltext=htmlfile.read()
regex="<body>(.+?)</body>"
pattern=re.compile(regex)
price=re.findall(pattern,htmltext)
print price

HTML 文件:

<html>
<body>
This is a basic HTML file to try to get my python file to work...
</body>
</html>

提前致谢!

最佳答案

这里有一些错误。您需要启用 dotall 修饰符,它强制点跨越换行符序列。至于以下包含已编译正则表达式和调用 findall 的行,它应该是:

regex = "<body>(.+?)</body>"
pattern = re.compile(regex, re.DOTALL)
price = pattern.findall(htmltext)

可以简化如下,我建议从匹配结果中丢弃空格。

price = re.findall(r'(?s)<body>\s*(.+?)\s*</body>', htmltext)

为了将来引用,请使用 BeautifulSoup 等解析器而不是正则表达式来提取数据。

关于python - 为什么 urllib 不适用于本地网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27934571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com