python动态图如何渲染到网页_python | 爬虫笔记(七)- 动态渲染页面抓取Selenium...

JavaScript 动态渲染的页面不止 Ajax 这一种

另外有的ajax渲染接口含有很多加密参数,难以直接找出其规律

通过模拟浏览器运行的方式来实现,Selenium、Splash、PyV8、Ghost 等

7.1 Selenium的使用

自动化测试工具,支持多种浏览器。爬虫中主要用来解决js渲染问题

用 Selenium 来驱动浏览器加载网页的话,可以直接拿到JavaScript 渲染的结果了,加密不用再担心。

1- 声明浏览器对象

browser = webdriver.Chrome()

2- 访问页面

browser.get('https://www.taobao.com')

3- 查找节点

input_first = browser.find_element(By.ID, 'q') #单个节点

lis = browser.find_elements_by_css_selector('.service-bd li')

4- 节点交互

...

5- 获取节点信息

通过 page_source 属性可以获取网页的源代码,获取源代码之后就可以使用解析库如正则、BeautifulSoup、PyQuery 等来提取信息了。

不过 Selenium 已经提供了选择节点的方法,返回WebElement 类型,可以通过相关方法或属性来解析

6- 获取属性

7- 切换frame

8- 延时等待

确保节点已经加载出来

- 隐式等待

当查找节点而节点并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是 0。 implicitly_wait()

- 显式等待

指定好要查找的节点,然后指定一个最长等待时间。如果在规定时间内加载出来了这个节点,那就返回查找的节点,如果到了规定时间依然没有加载出该节点,则会抛出超时异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值