在使用requests請求一個頁面上的元素時,有時會出現請求不到結果的情況
審查元素時可以看到的標簽,在頁面源代碼中卻看不到
原因是我們想要的元素是經過js事件動態生成的
一般有兩種方式可以拿到我們想要的內容
一、使用selenium模擬瀏覽器
二、分析網頁請求
這里介紹第一種方法
首先安裝selenium庫
命令提示符輸入:
pip install selenium
下載,配置webdriver(以chromdriver為例)
1、查看瀏覽器的版本
2、下載chromedriver
地址:http://npm.taobao.org/mirrors/chromedriver/
下載瀏覽器對應版本
下載對應系統對應版本(windows64位下載win32版本即可)
3、配置chromedriver
將下載的文件解壓至chrome瀏覽器的安裝路徑下
配置環境變量
路徑為文件解壓路徑
4、使用selenium庫請求訪問網站就可以使用解析庫來拿到我們想要的信息了
例如,我們想要這個標題信息,右鍵審查元素查看代碼
from selenium import webdriver from bs4 import BeautifulSoup url = 'https://www.udemy.com/course/network-security-course/'
#模擬瀏覽器請求網站
driver = webdriver.Chrome() res = driver.get(url) doc = BeautifulSoup(driver.page_source, 'html.parser') course = doc.find('h1', class_='clp-lead__title').get_text().replace('\n','') print(course) #關閉瀏覽器
driver.quit()
結果: