gpt4 book ai didi

python - 网页抓取 : Regex is not returning anything? 我做错了什么?

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:15 27 4
gpt4 key购买 nike

我正在尝试编写一个 python 脚本,它使用“urllib”和“re”库从 html 页面中提取天气预报信息,但我似乎无法返回任何值,有人可以帮助我吗?

import urllib
import re

url = ('http://www.metoffice.gov.uk/public/weather/forecast/gcptz5sys')

htmlfile = urllib.urlopen(url)

htmltext = htmlfile.read()

regex =('<span title="Maximum daytime temperature" data-c="10" data-f="50">(.+?)<sup>°C</sup></span>')

pattern = re.compile(regex)

temp = re.findall(pattern,htmltext)

print (temp)

顺便说一句,我正在使用 Python 2.7...

最佳答案

试试这个:

#!/usr/bin/env python    

import urllib
import re


def main():
url = ('http://www.metoffice.gov.uk/public/weather/forecast/gcptz5sys')

htmlfile = urllib.urlopen(url)

htmltext = htmlfile.read()

htmltext = str(htmltext).replace('\n', '')
htmltext = str(htmltext).replace('\t', '')
htmltext = str(htmltext).replace(' ', '')

pattern = re.compile('<spantitle="Maximumdaytimetemperature"data-c="7"data-f="45">(?P<temperature>.+?)<sup>&deg;C</sup></span>')

for match in pattern.finditer(htmltext):
print match.group('temperature')

if __name__ == "__main__":
main()

所以我在这里做了什么:

  1. 下载内容
  2. 删除所有换行符
  3. 删除所有标签
  4. 删除所有空格字符
  5. 我创建并编译正则表达式模式,其中将使用组“温度”来检索温度(注意:正则表达式剂量注释包含空格或换行符)
  6. 使用 finditer 函数迭代匹配的元素并将其打印到控制台。

P.S.:我删除了所有空白字符,因为它可以在后端动态更改,并且您的正则表达式每次都应该更改。通过删除所有空格和换行符,您可以避免此问题。

关于python - 网页抓取 : Regex is not returning anything? 我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27176568/

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