在抓取常规的静态网页时,我们直接请求对应的 url 就可以获取到完整的 HTML 页面,但是对于动态页面,网页显示的内容往往是通过 ajax 动态去生成的,所以如果是用 urllib.request 直接获取页面的 HTML 时,就获取不到我们所想用的内容,这时我们就可以利用 selenium 库就可以获得我们所需要的内容了。
需安装的三方库BeautifulSoup4
selenium
lxml
示例代码示例说明:获取德邦官网设立了网点的市区名称
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)