Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:应为字符串或缓冲区_Python_Python 2.7_Web Scraping_Beautifulsoup_Typeerror - Fatal编程技术网

Python TypeError:应为字符串或缓冲区

Python TypeError:应为字符串或缓冲区,python,python-2.7,web-scraping,beautifulsoup,typeerror,Python,Python 2.7,Web Scraping,Beautifulsoup,Typeerror,我得到这个错误 回溯(最近一次调用上次):文件 “C:\Users\Dad\Desktop\wunderground.py”,第63行,在 soup=BeautifulSoup(page.read().decode('utf-8','ignore'))文件“C:\Python27\lib\site packages\bs4\uuuuu init\uuuuuu.py”,第172行,在init self.\u feed()文件“C:\Python27\lib\site packages\bs4\uu

我得到这个错误

回溯(最近一次调用上次):文件 “C:\Users\Dad\Desktop\wunderground.py”,第63行,在 soup=BeautifulSoup(page.read().decode('utf-8','ignore'))文件“C:\Python27\lib\site packages\bs4\uuuuu init\uuuuuu.py”,第172行,在init self.\u feed()文件“C:\Python27\lib\site packages\bs4\uuuuu init\uuuuuuuu.py”,第185行,在\u feed中 self.builder.feed(self.markup)文件“C:\Python27\lib\site packages\bs4\builder\u htmlparser.py”,第146行, 饲料 提要中的parser.feed(标记)文件“C:\Python27\Lib\HTMLParser.py”,第117行 goahead中的self.goahead(0)文件“C:\Python27\Lib\HTMLParser.py”,第161行 k=self.parse_starttag(i)文件“C:\Python27\Lib\HTMLParser.py”,第327行,parse_starttag self.handle\u starttag(tag,attrs)文件“C:\Python27\lib\site packages\bs4\builder\u htmlparser.py”,第48行, 在handle_starttag中 handle\u starttag(name,None,None,dict(attrs))文件“C:\Python27\lib\site packages\bs4\uuuuu init\uuuuuu.py”,第298行,in 把手 self.currentTag,self.previous_元素)文件“C:\Python27\lib\site packages\bs4\element.py”,第749行,在init self.name,attrs)文件“C:\Python27\lib\site packages\bs4\builder\u_init\u_.py”,第160行,在 _替换\u cdata\u列表\u属性\u值 values=空白\u re.分割(值)类型错误:应为字符串或缓冲区

当我试着跑的时候

import urllib2
from bs4 import BeautifulSoup

f = open('wunder-data.txt', 'w')

dayTemp1 = 32
dayTemp2 = 32
dayTemp3 = 32
dayTemp4 = 38
dayTemp5 = 42
dayTemp6 = 48
dayTemp7 = 45
dewPoint1 = 32
dewPoint2 = 32
dewPoint3 = 28
dewPoint4 = 28
dewPoint5 = 31
dewPoint6 = 35
dewPoint7 = 31
#Clv1Pressure = 30.30
#Clv2Pressure = 30.47
#Clv3Pressure = 30.35
#Clv4Pressure = 30.26
#Clv5Pressure = 30.31
#Clv6Pressure = 30.09
#Clv7Pressure = 30.25

f.write(str(dayTemp1)+','+str(dewPoint1)+','+
str(dayTemp2)+','+str(dewPoint2)+','+
str(dayTemp3)+','+str(dewPoint3)+','+
str(dayTemp4)+','+str(dewPoint4)+','+
str(dayTemp5)+','+str(dewPoint5)+','+
str(dayTemp6)+','+str(dewPoint6)+','+
str(dayTemp7)+','+str(dewPoint7)+','+'\n')

for y in range(2009): #later 1985 to 2015
    for m in range(1, 13):
        for d in range(1, 32):

        # Check if leap year
            if y%400 == 0:
                leap = True
            elif y%100 == 0:
                leap = False
            elif y%4 == 0:
                leap = True
            else:
                leap = False

        # Check if already gone through month
            if (m == 2 and leap and d > 29):
                continue
            elif (m == 2 and d > 28):
                continue
            elif (m in [4, 6, 9, 10] and d > 30):
                continue


            url = "http://www.wunderground.com/history/airport/KADS/{0}/{1}/{2}/DailyHistory.html".format(y,m,d)
            page = urllib2.urlopen(url)

            soup = BeautifulSoup(page.read().decode('utf-8', 'ignore'))
            wx = soup.findAll(attrs={"class":"wx-value"})
            try:
                test = wx[16].string
                break
            except:
                try:
                    test = wx[15].string
                    break
                except:
                    try:
                        test = wx[14].string
                        break
                    except:
                        try:
                            test = wx[13].string
                            dayTemp1 = dayTemp2
                            dayTemp2 = dayTemp3
                            dayTemp3 = dayTemp4
                            dayTemp4 = dayTemp5
                            dayTemp5 = dayTemp6
                            dayTemp6 = dayTemp7
                            dayTemp7 = wx[0].string
                            dewPoint1 = dewPoint2
                            dewPoint2 = dewPoint3
                            dewPoint3 = dewPoint4
                            dewPoint4 = dewPoint5
                            dewPoint5 = dewPoint6
                            dewPoint6 = dewPoint7
                            dewPoint7 = wx[8].string
                            #Clv1Pressure = Clv2Pressure
                            #Clv2Pressure = Clv3Pressure
                            #Clv3Pressure = Clv4Pressure
                            #Clv4Pressure = Clv5Pressure
                            #Clv5Pressure = Clv6Pressure
                            #Clv6Pressure = Clv7Pressure
                            #Clv7Pressure = wx[]
                            f.write(dayTemp1+','+dewPoint1+','+
                            dayTemp2+','+dewPoint2+','+
                            dayTemp3+','+dewPoint3+','+
                            dayTemp4+','+dewPoint4+','+
                            dayTemp5+','+dewPoint5+','+
                            dayTemp6+','+dewPoint6+','+
                            dayTemp7+','+dewPoint7+','+'\n')
                        except:
                            break

f.close()

如果您只需拨打
BeautifulSoup(page)
,该怎么办?谢谢您的回复,但它不起作用。同样的错误。谢谢。你试过其他脚本吗?您的代码在我的Python 3.4安装上运行时没有出现错误。(我认为您的逻辑有一些问题,但我没有得到任何错误)我将在python 3.4而不是2.7中尝试,谢谢!我应该使用Python 3.5还是3.4?