在抓取常规的静态网页时,咱们直接请求对应的 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