attributeError:'NoneType'对象没有属性'end'

时间:2018-10-12 05:07:47

标签: python

我正在做网页抓取工作以进行天气预报。

我为此编程运行的代码是

import re
import urllib.request
# https://www.weather-forecast.com/locations/Bangalore/forecasts/latest

city = input("Enter your city:")
url = 'https://www.weather-forecast.com/locations/' + city + '/forecasts/latest'

data = urllib.request.urlopen(url).read()

data1 = data.decode('utf-8')


m = re.search('span class= "phrase"', data1)

start = m.end()

end = start + 100

newString = data1[start:end]

print(newString)

我收到以下错误

  

======================重新启动:C:/Python/weather.py =============== ========   输入您的城市:西雅图   追溯(最近一次通话):    文件“ C:/Python/weather.py”,第15行      开始= m.end(打印)   AttributeError:'NoneType'对象没有属性'end'

2 个答案:

答案 0 :(得分:1)

使用BeautifulSoup遍历/搜索HTML之类的标记文档。它旨在为您节省使用正则表达式解析HTML的麻烦。

赞:

After

答案 1 :(得分:0)

只需在Jupyter Online上对其进行测试。这行给您带来了问题:

  • m = re.search('span class =“ phrase”',data1)

如果您打印原始html,您会注意到语法为:

  • span class =“ phrase”

也就是说,您在正则表达式的'='符号旁边添加了一个额外的空格,使其返回None。

Jupyter Test