[Python爬虫]使用Python爬取动态网页-腾讯*敏*感*词*(Selenium)

优采云 发布时间: 2022-06-05 15:59

  [Python爬虫]使用Python爬取动态网页-腾讯*敏*感*词*(Selenium)

  前文传送门:

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

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

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

  开发环境

  操作系统:windows 10

  Python版本 :3.6

  爬取网页模块:selenium,PhantomJS

  分析网页模块:BeautifulSoup4

  关于Selenium

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

  具体请参加官网:

  关于PhantomJS

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

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

  具体参加官网:

  模块安装

  lxml为解析网页所必需

  pip3 install selenium

  pip3 install BeautifulSoup4

  pip3 install lxml

  Driver 下载

  这里我们下载Chrome driver和 Phantomjs

  其他的driver见官网

  #drivers

  

  Chrome下载

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

  C:\Windows\System32

  

  PhatomJS下载

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

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

  

  网页分析

  我们以幽游白书为例

  打开后发现*敏*感*词*并没有全部加载需要向下翻页才可以加载完毕

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

  

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

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

  程序原理

  

  代码介绍

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

  

  5. 新建目录并下载图片

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

  

  执行结果

  

  

  注意事项:

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

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

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

  只能爬取免费的内容

  本脚本仅用于学习用途

  源码位置

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线