Python3.7+selenium捕获网页内容

Python3.7+selenium捕获网页内容

0x01 平台

Windows64位家庭版使用pycharm(version2020.2)编译环境Python3.7编写。成功捕获一个网页的日志部分。

0x02 简介

selenium是一种自动化测试的技术,可以直接在浏览器中打开网站,审查网站等,可以模拟用户的操作。

运用selenium可以测试我们创作的Web项目能否更好的在不同的浏览器中运行,也可以用来爬取一个网页的信息。

0x03 实验

目标

通过selenium捕获“”的log信息,并保存在info.json文件中

准备

下载安装Selenium模块: 在Python项目控制台输入命令:pip install Selenium

下载安装谷歌浏览器驱动,我们使用国内的镜像源。您可以在"http://npm.taobao.org/mirrors/chromedriver/"上面下载您的谷歌浏览器对应版本的Chromedriver。我使用的浏览器是Chromium,版本"88.0.4307.0 ",Chromedriver使用最新的版本:

在这里插入图片描述

注意

仅仅下载了浏览器驱动是完全不够的,我们需要将它放置在chromium的文件夹中,另外再拷贝一份放置在您的Python文件夹内,我用的是Python3.7的环境。在这里插入图片描述
在这里插入图片描述

请注意,如果您未执行上述步骤,在编译文件过程中可能会报错,因为编译器找不到浏览器驱动,它无法开启浏览器进行下一步的内容。
当然,也可以用这种方法设置您的web driver的环境变量:

chromedriver = "\您的Chromedriver路径\"
driver = webdriver.Chrome(chromedriver)

编码

包含的库文件:
在这里插入图片描述

如果提示您未安装某个依赖库,您可以使用命令"pip install <#您需要的库文件名>"来安装。
在这里插入图片描述

请注意这里的13行是我的chromium浏览器的目录,浏览器可执行程序在这个目录下面,我们需要在代码中声明chrome.exe的路径,否则可能会报错,Error Msg :
在这里插入图片描述

Desired capabilities类提供一组键值对key-value,我们通过它指定运行环境是谷歌浏览器,您可以根据您的需要修改如火狐、safari…

输出抓取的info.json文件

#设置启动项,
设置要抓取的网页
driver = webdriver.Chrome(desired_capabilities=capabilities, options=chrome_options)
driver.get('https://www.baidu.com')
#打印抓取的信息
info=[]
for capW_ in driver.get_log('browser'):
	info.append(capW_)
    pprint.pprint(capW_)
j = json.dumps(info, indent = 4,ensure_ascii=False)
with codecs.open('info.json','w','utf-8') as file:
    file.write(j)

driver.close()

如果您需要加载一些浏览器扩展,您可以尝试在代码中加入以下内容

chrome_options.add_extension("\你的扩展程序路径\扩展程序.crx")

扩展

捕获了百度的日志,我们使用selenium还可以对网页元素进行定位,您可以试着了解以下方法。
定位单个匹配元素的方法:

find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector

定位多个匹配元素的方法:

find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector

参考文献

https://www.cnblogs.com/justaman/p/11503805.html
https://www.cnblogs.com/yoyoketang/p/6789537.html
https://blog.csdn.net/u012995964/article/details/84973774

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值