在抓取常規的靜態網頁時,咱們直接請求對應的 url 就能夠獲取到完整的 HTML 頁面,可是對於動態頁面,網頁顯示的內容每每是經過 ajax 動態去生成的,因此若是是用 urllib.request 直接獲取頁面的 HTML 時,就獲取不到咱們所想用的內容,這時咱們就能夠利用 selenium 庫就能夠得到咱們所須要的內容了。html
示例說明:獲取德邦官網設立了網點的市區名稱前端
import urllib.request from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("--headless") #設置該參數使在獲取網頁時不打開瀏覽器 driver = webdriver.Chrome(chrome_options=chrome_options, executable_path="./chromedriver") driver.get("https://www.deppon.com/deptlist/") html = driver.page_source driver.close() soup = BeautifulSoup(html, 'lxml') items = soup.select('div[class~="listA_Z"] a') for item in items: print(item.string)
Chrom/firefox 瀏覽器插件:Katalon Recorder,Katalon Recorder是一個前端自動化測試插件,它能夠用來記錄你在網頁上的全部操做,最神奇的是它還能夠把記錄導出爲各類代碼,這其中就包含了Python2的代碼。有時借用它,甚至能夠不用去分析HTML的結構就能夠輕鬆地讓咱們獲取取得所須要的數據了,這對於那種HTML結構凌亂的網頁仍是頗有幫助的。python