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

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

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

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

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

http://www.aibbt.com/a/18049.html

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

http://www.aibbt.com/a/18048.html

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

http://www.aibbt.com/a/18047.html

[Python爬虫]使用Selenium操作浏览器订购火车票

http://www.aibbt.com/a/18046.html

这节说如何利用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 java 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

04e6bd46d77645009e3d7fdc496ea532.jpg

Chrome下载

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

C:\Windows\System32

dd27ed7e6aed4f8494bb4d85968282bb.jpg

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

PhatomJS下载

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

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

76b69d377ef14d9c92c1b178588ec359.jpg

http://phantomjs.org/download.html

网页分析

我们以幽游白书为例

http://ac.qq.com/ComicView/index/id/543606/cid/1

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

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

b04da04dfdb1457daab16c11d93b9788.jpg

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

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

程序原理

e92ed90b2ebe44309d2689c2b2d379c6.jpg

代码介绍

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. 获取标题和图片地址之后存入字典

49fc1c3b314b47af89662c4db58c25d8.jpg

5. 新建目录并下载图片

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

96c22c1c14a542b98225e7bd89c4bfb1.jpg

执行结果

a7a00dfee3c24b1dab463d24ffb9689b.jpg

38f7f0ab7a2549cca111cff8cacc20e5.jpg

注意事项:

建议先用Chrome测试OK,再改用PhantomJS执行Chrome和PhantomJS在实际向下翻页时有差异,需测试后调节循环次数为防止被ban,每次爬取采用了随机延迟的方法只能爬取免费的内容本脚本仅用于学习用途

源码位置

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

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

责任编辑:

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值