爬取数据时有时候返回的HTML代码中确并没有可用数据,解决此问题可通过 Selenium浏览器自动化测试框架实现获取HTML代码中的可用数据。
思路分析–实现步骤- 通过pip或其他方式安装selenium模块。
- 安装bs4库
- 在浏览器关于窗口中查看当前浏览器的版本,如图所示
- 打开“http://chromedriver.storage.googleapis.com/index.html”网页地址,选择浏览器对应版本的驱动,这里可以选择版本号前两位相同的任意一个驱动
- 浏览器驱动下载完成后,将chromedriver.exe文件解压在python的安装路径下即可
- 导入webdriver模块与BeautifulSoup模块,然后创建浏览器驱动参数对象,并设置相关属性,再发送网络请求,最后解析返回的HTML代码并打印关键代码部分。
"""
@Time : 2021/2/12 21:13
@Auth : Yvon~早安阳光
@File :SeleniumHtm
"""
from selenium import webdriver # 导入浏览器驱动模块
from bs4 import BeautifulSoup # 导入解析HTML代码模块
url = 'https://www.jianshu.com/u/cd9f63a63e4b'
try:
# 浏览器驱动参数对象
chrome_options = webdriver.ChromeOptions()
# 不加载图片
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)
# 使用headless无界面浏览器模式
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# 加载谷歌浏览器驱动,填写自己浏览器驱动的实际路径
driver = webdriver.Chrome(options=chrome_options,
executable_path='D:/Python38/chromedriver')
driver.get(url) # 发送网络请求
html = driver.page_source # 获取页面html源代码
# print(html)
html = BeautifulSoup(html, "html.parser") # 解析html代码
# 打印HTML代码中的关键代码
# print(html)
print('获取关键代码为:\n', html.find('div', class_="title"))
driver.quit() # 退出浏览器驱动
except Exception as e:
print('异常信息为:', e)
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你
关注我的微信公众号【伤心的辣条】免费获取~
送上一句话:世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
推荐好文:包装成1年工作经验的测试工程师,我给他的面试前的建议如下
自动化测试到底要学什么?
为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事
自动化测试和手动测试哪个更高级?
新手必看:怎么写一个合格的测试用例?
python登录接口测试问题记录与解决 ( 干 货 )