TypeError:expected string or bytes-like object

时间:2021-01-22 20:15:38

TypeError:expected string or bytes-like object

在写爬虫,爬取百度图片信息的时候出现这个异常,但看了下报的是系统文件的异常。后面查了许多资料,大部分都是说正则匹配的问题,但是我本次要做的是取5页的图片信息,异常是在正常爬取第1页信息以后报的,那可能是遍历某个item的时候没有值,所以导致正则匹配问题。

原来的代码:

def parsePage(html):
    '''解析函数,解析爬取的页面信息'''
    data = html.get("data")
    #判断:data是否有数据,如果有则进行遍历
    if data:
	for item in data:
		yield{
	            'imageurl' : item.get("middleURL"),
		    'title' : item.get("fromPageTitleEnc"),
		}	

修改后:

def parsePage(html):
 '''解析函数,解析爬取的页面信息'''
    data = html.get("data")
    #判断:data是否有数据,如果有则进行遍历
    if data:
	for item in data:
	    #判断:item是否有值,有值则进去获取,没有则跳过
	    if item:
		yield{
		    'imageurl' : item.get("middleURL"),
		    'title' : item.get("fromPageTitleEnc"),
		}
	    else:
		continue
可以正常爬取5页信息了