[Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium)

浏览: 2945

作者:宅必备   一个会写Python的Oracle DBA

个人公众号:宅必备

前文传送门:

[Python程序]利用微信企业号发送报警信息

[Python爬虫]使用Python爬取静态网页-斗鱼直播

  [Python爬虫]使用Python爬取动态网页-豆瓣电影(JSON)



好久没更新Python相关的内容了,这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分

上节我们说了如何获取动态网页中的jquery内容

这节说如何利用selenium模拟浏览器动作


开发环境

操作系统:windows 10

Python版本 :3.6

爬取网页模块:selenium,PhantomJS

分析网页模块:BeautifulSoup4

关于Selenium

selenium 是一个Web自动测试的工具,可以用来操作一些浏览器Driver,例如Chrome,Firefox等,也可以使用一些headless的driver,例如PhantomJS

具体请参加官网: http://selenium-python.readthedocs.io/

关于PhantomJS

PhantomJS是一个无头(headless)的WebKit javascript API

我们可以用它模拟浏览器的操作,也可以用来截图

具体参加官网: http://phantomjs.org/

模块安装

lxml为解析网页所必需

pip3 install selenium

pip3 install BeautifulSoup4

pip3 install lxml

Driver 下载

这里我们下载Chrome driver和 Phantomjs

其他的driver见官网  http://selenium-python.readthedocs.io/installation.html#drivers

image.png

Chrome下载

下载完成后可以放到系统环境变量中,如:   C:\Windows\System32

https://sites.google.com/a/chromium.org/chromedriver/downloads

image.png

PhatomJS下载

下载后同样放到系统环境变量中

下载完成解压后只需要将exe文件放到目录下

http://phantomjs.org/download.html

image.png


网页分析

我们以幽游白书为例   http://ac.qq.com/ComicView/index/id/543606/cid/1

打开后发现漫画并没有全部加载需要向下翻页才可以加载完毕

之后通过开发者工具分析图片的地址

image.png

这里我们通过bs4 来提取出所有img地址

之后通过Python将其保存成图片

程序原理

image.png

代码介绍

1. import相关的模块

import selenium.webdriver

from bs4 import BeautifulSoup

2. 调用Chrome或者PhantomJS

driver = selenium.webdriver.Chrome()

#driver = selenium.webdriver.PhantomJS()

3. 获取网页源代码

 content=driver.page_source

4. 获取标题和图片地址之后存入字典

image.png

5. 新建目录并下载图片

这里首先判断是否有该漫画的目录,如果没有则新建,之后下载图片,图片的名称为列表的索引号

image.png

执行结果

image.png

image.png

注意事项

  1. 建议先用Chrome测试OK,再改用PhantomJS执行

  2. Chrome和PhantomJS在实际向下翻页时有差异,需测试后调节循环次数

  3. 为防止被ban,每次爬取采用了随机延迟的方法

  4. 只能爬取免费的内容

  5. 本脚本仅用于学习用途

源码位置

源码请访问我的github主页也可点击阅读全文:

https://github.com/bsbforever/spider/blob/master/selenium_web.py


Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复课程即可获取

小编的Python入门视频课程!!!

崔老师爬虫实战案例免费学习视频。

丘老师数据科学入门指导免费学习视频。

陈老师数据分析报告制作免费学习视频。

玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。

丘老师Python网络爬虫实战免费学习视频。

image.png

推荐 0
本文由 Python爱好者社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册