【发布时间】:2019-03-17 06:39:09
【问题描述】:
我正在为天气预报进行网络抓取。
我为这个程序运行的代码是
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'
【问题讨论】:
-
m = re.search('span class= "phrase"', data1)这个返回None,你应该使用beautifulsoup或其他库来解析网页内容,正则表达式不适合这个东西。 -
1.检查 data 和 data1 是否为“列表”数据类型。简单地打印它们。 2. 打印“开始”和“结束”变量并验证它们是否包含有效值。
标签: python