selenium+phantomjs爬取bilibili

首先我们要下载phantomjs 你可以到 http://phantomjs.org/download.html 这里去下载 下载完之后解压到你想要放的位置 你需要配置一下环境变量哦

如下图:

selenium+phantomjs爬取bilibili

首先,我们怎么让浏览器模拟操作,也就是我们自己先分析好整个操作过程,哪个地方有什么问题,把这些问题都提前测试好,没问题了再进行写代码。

打开bilibili网站 https://www.bilibili.com/ 发现下图登陆弹窗

selenium+phantomjs爬取bilibili

那么这里我们就得先把这个弹窗去除,怎么去呢?你刷新一下或者点一下 首页 就不会出现了,所以这里我们可以模拟再刷新一次或者点击首页。

接下来搜索关键词 蔡徐坤 打球 这时就涉及到搜索输入框和搜索按钮

selenium+phantomjs爬取bilibili

点击搜索后我们看到了下列内容,其中圈起来的就是要爬的信息啦 这时就涉及到页面源码获取,数据元素定位

selenium+phantomjs爬取bilibili

那么上面这个过程走完了的话 我们也可以选择写入xls格式,同时这里还少了一个事,那就是我现在才爬了一页,那难道不写个自动化爬取全部吗?

selenium+phantomjs爬取bilibili

那此时就得解决循环获取和写入xls 更重要的事怎么去操作页数和下一页按钮

大致的思路就是这样子了!!!

先导入这些模块

selenium+phantomjs爬取bilibili

定义一个浏览器对象并设置其他功能

selenium+phantomjs爬取bilibili

创建excel文件,再创建一张工作表,名为 蔡徐坤篮球,并且设置支持覆盖原数据!

selenium+phantomjs爬取bilibili

打开网站

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

寻找 “首页” 元素

selenium+phantomjs爬取bilibili

先判断是否加载 输入框 再判断搜索按钮是否能点击 达到条件后输入内容进行搜索

selenium+phantomjs爬取bilibili

这时搜索完 是弹出新的窗口 这时就得获取窗口句柄 实现标签页跳转

all_h = browser.window_handles#获取所有窗口句柄browser.switch_to.window(all_h[1])#switch_to.window 标签页跳转

接下来就是获取页面源码了(此处非全部源码)

WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#server-search-app > div.contain > div.body-contain > div > div.result-wrap.clearfix')))#坚持是否加载完所有搜索结果html = browser.page_source#page_source方法可以获取到页面源码

然后搜索元素并提取内容进行保存

selenium+phantomjs爬取bilibili

再最后就是循环获取每一页提取数据最后写入xls文件!!!