2

我想webscrape Airbnb,我有工作代碼,但它似乎已經更新了頁面上的所有內容。它間歇地返回正確的輸出,然後有時會失敗?它會隨機返回第3頁和第17頁之間的NoneType錯誤。有沒有辦法讓它繼續嘗試或是我的代碼不正確?Python請求/硒與BeautifulSoup每次都不返回find_all

for page in range(1,pages + 1): 
     #get page urls 
     page_url= url + '&page={0}'.format(page) 
     print(page_url) 


     #get page 
     # browser.get(page_url) 
     source = requests.get(page_url) 
     soup = BeautifulSoup(source.text,'html.parser') 

     #get all listings on page 
     div = soup.find('div',{'class':'row listing-cards-row'}) 



     #loop through to get all info needed from cards 
     for pic in div.find_all('div',{'class':'listing-card-wrapper'}): 
        print(...) 

最後一個for循環是我的錯誤開始發生的地方。有時在我的其他功能中也會發生這種情況,有時它有時不起作用。我已經給了lxml解析器一個嘗試。

+0

我想找到一個解決方案,因爲請求要快得多,但我使用硒,現在一切似乎都正常運行。慢慢......但是正確。 – Tyshawn

+0

有一件事我注意到,即使使用硒,也是很奇怪的是,每次我更改代碼時,它都會失敗,第一次請求模塊出現相同的錯誤,但在此之後它完美地工作。 – Tyshawn

+0

您收到的錯誤是什麼?你應該檢查page_url是否被正確接收,例如:'source.raise_for_status()',然後繼續喝湯。 –

回答

0

在回顧了幾次湯之後,我注意到每隔幾次程序運行源代碼標籤都會改變。我拋出了一些例外,它似乎已經解決了我的「無」問題。