While Not Loop for empty list in python
While Not Loop for empty list in python
我正在向服务器发出请求...无论出于何种原因(超出我的理解),服务器都会给我一个状态代码 200,但是当我使用 Beautiful Soup 从 html,没有任何返回。它只发生在分页的第一页。
为了解决已知错误,我必须循环直到列表不为空。
这行得通,但很笨重。有一个更好的方法吗?知道我必须强制请求,直到列表包含一个项目。
# look for attractions
attraction_list = soup.find_all(attrs={'class': 'listing_title'})
while not attraction_list:
print('the list is empty')
try:
t = requests.Session()
t.cookies.set_policy(BlockAll)
page2 = t.get(search_url)
print(page2.status_code)
soup2 = BeautifulSoup(page2.content, 'html.parser')
attraction_list = soup2.find_all(attrs={'class': 'listing_title'})
except:
pass
我想到了这个。
attraction_list = soup.find_all(attrs={'class': 'listing_title'})
while not attraction_list:
print('the list is empty')
for q in range(0, 4):
try:
t = requests.Session()
t.cookies.set_policy(BlockAll)
page2 = t.get(search_url)
print(page2.status_code)
soup2 = BeautifulSoup(page2.content, 'html.parser')
attraction_list = soup2.find_all(attrs={'class': 'listing_title'})
except Exception as str_error:
print('FAILED TO FIND ATTRACTIONS')
time.sleep(3)
continue
else:
break
它会尝试 4 次来拉动景点,如果 attractions_list
以有效列表结束,它就会中断。够好了。
我正在向服务器发出请求...无论出于何种原因(超出我的理解),服务器都会给我一个状态代码 200,但是当我使用 Beautiful Soup 从 html,没有任何返回。它只发生在分页的第一页。
为了解决已知错误,我必须循环直到列表不为空。
这行得通,但很笨重。有一个更好的方法吗?知道我必须强制请求,直到列表包含一个项目。
# look for attractions
attraction_list = soup.find_all(attrs={'class': 'listing_title'})
while not attraction_list:
print('the list is empty')
try:
t = requests.Session()
t.cookies.set_policy(BlockAll)
page2 = t.get(search_url)
print(page2.status_code)
soup2 = BeautifulSoup(page2.content, 'html.parser')
attraction_list = soup2.find_all(attrs={'class': 'listing_title'})
except:
pass
我想到了这个。
attraction_list = soup.find_all(attrs={'class': 'listing_title'})
while not attraction_list:
print('the list is empty')
for q in range(0, 4):
try:
t = requests.Session()
t.cookies.set_policy(BlockAll)
page2 = t.get(search_url)
print(page2.status_code)
soup2 = BeautifulSoup(page2.content, 'html.parser')
attraction_list = soup2.find_all(attrs={'class': 'listing_title'})
except Exception as str_error:
print('FAILED TO FIND ATTRACTIONS')
time.sleep(3)
continue
else:
break
它会尝试 4 次来拉动景点,如果 attractions_list
以有效列表结束,它就会中断。够好了。