Python房产爬虫嵌套调用函数返回url_soup空数组问题求助
问题原因及修复方案
导致url_soup为空的两个直接问题
- 你定义了
urL_soup_generator这个用来生成soup列表的函数,但从未调用执行过它,url_soup会一直保持初始的空列表状态,打印自然没有内容。 - 就算调用了该函数也会报错:你给
getdata传的参数是[i],这是一个包含url字符串的列表,但getdata要求接收的是单个字符串类型的url,requests的get方法无法接收列表作为请求地址。
对应修复代码
url_soup = [] def urL_soup_generator(links): for i in links: # 把参数[i]改为i,传入单个字符串格式的url temporary_link = getdata(i) url_soup.append(temporary_link) # 新增函数调用代码,执行生成soup列表的逻辑 urL_soup_generator(urls) print(url_soup)
后续提取字段的隐藏问题
你后续写的get_sqm、get_location等字段提取函数,循环时用的还是最开始的全局soup变量,不是你遍历到的每一页的soup对象,就算url_soup生成成功也只会重复提取第一页的内容,需要调整逻辑,示例如下:
# 以get_sqm为例,其余提取函数按相同逻辑修改即可 def get_sqm(soup_list): # 遍历soup列表中每一页的soup对象 for page_soup in soup_list: for sqm in page_soup.find('ul', {'class': 'list-view real-estates'}).find_all('div', {'class': 'inline-group'}): sqm_value = sqm.get_text().split(',')[1].split()[0] sqm_area.append(sqm_value) return sqm_area
内容的提问来源于stack exchange,提问作者tsetsko
相关产品推荐
相关产品推荐

