2017-08-01 95 views
1

我有一個頁面,我需要得到源與BS4一起使用,但頁面中間需要1秒(可能更少)來加載內容,並且requests.get在部分加載之前捕獲頁面的源,在獲取數據之前如何等待一秒?等待頁面加載,然後用requests.get獲取數據在python 3

r = requests.get(URL + self.search, headers=USER_AGENT, timeout=5) 
    soup = BeautifulSoup(r.content, 'html.parser') 
    a = soup.find_all('section', 'wrapper') 

The page

<section class="wrapper" id="resultado_busca"> 

回答

4

它看起來並不像等待一個問題,它看起來像正在由JavaScript創建的元素,requests不能處理由JavaScript動態生成的元素。一個建議是selenium一起使用與PhantomJS獲得網頁源代碼,那麼你可以使用BeautifulSoup爲您解析,如下所示的代碼將恰恰如此:

from bs4 import BeautifulSoup 
from selenium import webdriver 

url = "http://legendas.tv/busca/walking%20dead%20s03e02" 
browser = webdriver.PhantomJS() 
browser.get(url) 
html = browser.page_source 
soup = BeautifulSoup(html, 'lxml') 
a = soup.find('section', 'wrapper') 

另外,有沒有必要如果您只查找一個元素,請使用.findAll