Python爬虫错误记录

2017-01-14 19:44:09来源:CSDN作者:liudehuadelianxi人点击

本文注意是用于记录在用Python写爬虫的过程中所经历的一些问题及其解决方法,便于后续翻查。


语法错误

错误文件已存在时无法创建文件

出错代码

fp = open("filetest.txt","w")fp.write("Hello World /n")fp.close()import osos.rename("filetest.txt","newfiletest.txt")fp = open("newfiletest.txt","r")print ("the new file name is:",fp.name)

详细错误信息

FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'filetest.txt' -> 'newfiletest.txt'

原因及解决方法

由于历史原因,在本代码出错之前已有其他错误,导致文件已经被重命名为filetest.txt,导致无法重复对其进行重命名,因而出错。解决方法是将代码目录下的同名文件删除,再执行代码,即可。


‘ResultSet’ object has no attribute ‘get’

出错代码

def getMMAlbumList(personal_id, file):    # get the ambum list of a sigle mm    data = urllib.request.urlopen(personal_id)    soup = BeautifulSoup(data, 'lxml')    tag=soup.find_all('div')    album_url=tag.get('href')    return data

详细错误信息

    album_url=tag.get('href')AttributeError: 'ResultSet' object has no attribute 'get'

原因及解决方法

通过打印tag可知其为一个tag的集合(类似于一个结构体),而代码需要从中找出href的属性值(可以理解为结构体中的某个变量的类型),如此在获取单个tag的属性值之前必须要定位到该tag,不能对整个tag集合进行操作。因此在该段代码中,若想取得某个tag的属性,需要遍历整个tag集合,找出该tag,最后调用get函数,获得相应属性值。修改后的代码如下:

def getMMAlbumList(personal_id, file):    # get the ambum list of a sigle mm    data = urllib.request.urlopen(personal_id)    soup = BeautifulSoup(data, 'lxml')    for tag in soup.find_all('a')        print (tag)    return data

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台