测试环境:python2.7 + beautifulsoup4.4.1 + selenium2.48.0

测试网址:http://tieba.baidu.com/p/2827883128

目的是下载该网页下所有图片,共160+张。可以分为以下几步:

1、获取网页源代码。

发现直接通过urllib2或者request获取到的源代码和实际图片对应不起来,通过chrome审查元素功能可以查询到对应的图片,猜测是该页面的图片加载是通过ajax异步传输的。因此使用工具selenium + chromedriver实现。安装好selenium+chromedriver之后,即可获取到需要的源代码。

2、分析获取到的源代码,找出图片的实际地址然后下载。过程与python爬虫2——下载文件类似。之前分析源码都是直接通过正则表达式实现,建议学习下beautifulsoup(现在就去),更方便。

实际程序运行后发现,只能获取到40张图片。原因是页面加载完成后,只有40张图片。如果需要获取全部图片,需要在页面加载完成之前,手动往下滑动滚轮,之后浏览器继续发送ajax请求给服务器,获取其他的图片。该方法实际测试可行,可以获取全部图片。

但是!手动操作这种方法太low了!以下是我的猜想:1、是否可以直接通过分析源代码中的js部分,直接提取出所有向后台服务器发送ajax请求的代码,一次性发送出去从而得到所有图片的地址? 2、是否可以通过js或者selenium,在加载页面的时间段,模拟滚轮动作,从而实现功能。方法2我实际测试了下,由于水平有限,不熟悉js,没有成功。附代码:

#-*- coding: utf-8 -*-

importrequestsfrom bs4 importBeautifulSoupfrom selenium importwebdriver

driver=webdriver.Chrome()

url= "http://tieba.baidu.com/p/2827883128"driver.get(url)try:#driver.implicitly_wait(20)

#driver.find_element_by_id("ag_main_bottombar")

#js="var q=document.body.scrollTop=10000"

#driver.execute_script(js)

sourcePage =driver.page_source

soup= BeautifulSoup(sourcePage, "lxml")

images= soup.find_all(class_ = "ag_ele_a ag_ele_a_v")print(len(images))for image inimages:print(image)finally:#pass

driver.quit()

python爬虫审查元素_python爬虫3——获取审查元素(板野友美吧图片下载)相关推荐

  1. python爬虫库教程_Python爬虫Selenium库详细教程

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于Python程序员 刚接触Python的新手.小白,可以复制下面的链接去免费观看Py ...

  2. python爬虫应聘信息_python爬虫获取拉钩网在线搜索招聘信息(超实用!)

    # -*- encoding: utf-8 -*- """ """ #  导入相应的包 import requests import tim ...

  3. python爬虫框架教程_Python爬虫实战(十二):爬虫框架Scrapy的第一个爬虫示例入门教程...

    本文主要向大家介绍了Python爬虫实战的爬虫框架Scrapy的第一个爬虫示例入门教程,通过具体的内容向大家展现,希望对大家学习Python爬虫实战有所帮助. 我们使用dmoz.org这个网站来作为小 ...

  4. python 爬虫面试题_Python爬虫面试题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.tcp和udp的区别? TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必 ...

  5. python爬虫面试问题_Python爬虫面试总结

    ## Python爬虫面试总结 1. 写一个邮箱地址的正则表达式? [A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ 2. 谈 ...

  6. python爬取网页内容_Python爬虫原理解析

    笔者公众号:技术杂学铺 笔者网站:mwhitelab.com 本文将从何为爬虫.网页结构.python代码实现等方面逐步解析网络爬虫. 1. 何为爬虫 如今互联网上存储着大量的信息. 作为普通网民,我 ...

  7. python爬虫东方财富网_Python爬虫入门:以东方财富网为例

    网络爬虫(Web Spider),根据网页地址爬取网页内容,从而获取各类数据,实现多种多样的功能.下面就以爬取东方财富网的数据为例,谈谈最简单的爬虫的实现.爬虫的核心有三个:请求.解析.存储. 环境配 ...

  8. python爬虫的用途_Python爬虫的作用与地位(附python3教程+爬虫技术路线图)

    小编说:网络爬虫是一种伴随着互联网诞生与演化的"古老"的网络技术,随着互联网进入大数据时代,爬虫技术迎来了一波新的振兴浪潮. 本文通过企业内部与互联网两个场景向大家讲书爬虫发挥了哪 ...

  9. python爬虫电影信息_Python爬虫入门 | 爬取豆瓣电影信息

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

  10. python编程理论篇_Python爬虫入门实战之猫眼电影数据抓取(理论篇)

    前言 本文可能篇幅较长,但是绝对干货满满,提供了大量的学习资源和途径.达到让读者独立自主的编写基础网络爬虫的目标,这也是本文的主旨,输出有价值能够真正帮助到读者的知识,即授人以鱼不如授人以渔,让我们直 ...

最新文章

  1. 四张图彻底搞懂CNN反向传播算法(通俗易懂)
  2. OS X 10.11 cocoapods
  3. 一种可以穿透还原卡和还原软件的代码
  4. 最小生成树学习-Kruskal算法
  5. android 小球效果,Android开发实现跟随手指的小球效果示例
  6. boost::mp11::mp_nth_element相关用法的测试程序
  7. Ajax的简单实现(JQuary)
  8. javascript对象包含哪些要素_重学JavaScript 对象
  9. Selenium Grid的搭建方法
  10. 机器学习基础(三十) —— 线性回归、正则化(regularized)线性回归、局部加权线性回归(LWLR)
  11. 运维是否有前(钱)途?
  12. 开源框架Struts:FormBean滴那些事儿
  13. 【i.MX6ULL】驱动开发12——电容触摸驱动实践(上)
  14. 《C# 从现象到本质》出版,免费送书10本
  15. Makefile使用总结
  16. USB over Network通过本地网络或 Internet 共享的远程 USB 设备
  17. html图片自动左右轮播,原生JS实现图片左右轮播
  18. win7开机启动项设置_Win7电脑如何提高开机速度?
  19. 清理c盘垃圾怎么清理?清理软件如何选择?
  20. 为何现在有的企业一般只招应届毕业生呢?

热门文章

  1. JUC本质解析+进程/线程
  2. Swiper 在vue中的使用,loop=true获取真实index,数据更新刷新初始化swiper
  3. 目标检测java系统_5分钟!用Java实现目标检测
  4. brew 一直等待_等待高高时,可以做的小事...
  5. 《异星入境》-超粒方
  6. 鬼怪出没不害怕,最怕秒杀404
  7. python中lower()函数的用法
  8. ArrayList 类方法toArray的一点疑惑
  9. JGroups - 02架构概述
  10. 【数据结构笔记20】图的定义,图的表示:邻接矩阵与邻接表