Python爬虫开发【第1篇】【爬虫案例】
案例一:网站模拟登录
- # douban.py
- from selenium import webdriver
- from selenium.webdriver.common.keys import Keys
- import time
- driver = webdriver.PhantomJS()
- driver.get("http://www.douban.com")
- # 输入账号密码
- driver.find_element_by_name("form_email").send_keys("xxxxx@xxxx.com")
- driver.find_element_by_name("form_password").send_keys("xxxxxxxx")
- # 模拟点击登录
- driver.find_element_by_xpath("//input[@class='bn-submit']").click()
- # 等待3秒
- time.sleep(3)
- # 生成登陆后快照
- driver.save_screenshot("douban.png")
- with open("douban.html", "w") as file:
- file.write(driver.page_source)
- driver.quit()
案例二:动态页面模拟点击
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- # python的测试模块
- import unittest
- from selenium import webdriver
- from bs4 import BeautifulSoup
- class douyuSelenium(unittest.TestCase):
- # 初始化方法
- def setUp(self):
- self.driver = webdriver.PhantomJS()
- #具体的测试用例方法,一定要以test开头
- def testDouyu(self):
- self.driver.get('http://www.douyu.com/directory/all')
- while True:
- # 指定xml解析
- soup = BeautifulSoup(driver.page_source, 'xml')
- # 返回当前页面所有房间标题列表 和 观众人数列表
- titles = soup.find_all('h3', {'class': 'ellipsis'})
- nums = soup.find_all('span', {'class': 'dy-num fr'})
- # 使用zip()函数来可以把列表合并,并创建一个元组对的列表[(1,2), (3,4)]
- for title, num in zip(nums, titles):
- print u"观众人数:" + num.get_text().strip(), u"\t房间标题: " + title.get_text().strip()
- # page_source.find()未找到内容则返回-1
- if driver.page_source.find('shark-pager-disable-next') != -1:
- break
- # 模拟下一页点击
- self.driver.find_element_by_class_name('shark-pager-next').click()
- # 退出时的清理方法
- def tearDown(self):
- print '加载完成...'
- self.driver.quit()
- if __name__ == "__main__":
- unittest.main()
案例三:执行 JavaScript 语句
1.隐藏百度图片
- from selenium import webdriver
- driver = webdriver.PhantomJS()
- driver.get("https://www.baidu.com/")
- # 给搜索输入框标红的javascript脚本
- js = "var q=document.getElementById(\"kw\");q.style.border=\"2px solid red\";"
- # 调用给搜索输入框标红js脚本
- driver.execute_script(js)
- #查看页面快照
- driver.save_screenshot("redbaidu.png")
- #js隐藏元素,将获取的图片元素隐藏
- img = driver.find_element_by_xpath("//*[@id='lg']/img")
- driver.execute_script('$(arguments[0]).fadeOut()',img)
- # 向下滚动到页面底部
- driver.execute_script("$('.scroll_top').click(function(){$('html,body').animate({scrollTop: '0px'}, 800);});")
- #查看页面快照
- driver.save_screenshot("nullbaidu.png")
- driver.quit()
2.模拟滚动条滚动到底部
- from selenium import webdriver
- import time
- driver = webdriver.PhantomJS()
- driver.get("https://movie.douban.com/typerank?type_name=剧情&type=11&interval_id=100:90&action=")
- # 向下滚动10000像素
- js = "document.body.scrollTop=10000"
- #js="var q=document.documentElement.scrollTop=10000"
- time.sleep(3)
- #查看页面快照
- driver.save_screenshot("douban.png")
- # 执行JS语句
- driver.execute_script(js)
- time.sleep(10)
- #查看页面快照
- driver.save_screenshot("newdouban.png")
- driver.quit()
Python爬虫开发【第1篇】【爬虫案例】的更多相关文章
- python网页爬虫开发之四-串行爬虫代码示例
实现功能:代理.限速.深度.反爬 import re import queue import urllib.parse import urllib.robotparser import time fr ...
- Python爬虫开发与项目实战pdf电子书|网盘链接带提取码直接提取|
Python爬虫开发与项目实战从基本的爬虫原理开始讲解,通过介绍Pthyon编程语言与HTML基础知识引领读者入门,之后根据当前风起云涌的云计算.大数据热潮,重点讲述了云计算的相关内容及其在爬虫中的应 ...
- Python爬虫开发与项目实战
Python爬虫开发与项目实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1MFexF6S4No_FtC5U2GCKqQ 提取码:gtz1 复制这段内容后打开百度 ...
- 洗礼灵魂,修炼python(72)--爬虫篇—爬虫框架:Scrapy
题外话: 前面学了那么多,相信你已经对python很了解了,对爬虫也很有见解了,然后本来的计划是这样的:(请忽略编号和日期,这个是不定数,我在更博会随时改的) 上面截图的是我的草稿 然后当我开始写博文 ...
- 爬虫开发python工具包介绍 (1)
本文来自网易云社区 作者:王涛 本文大纲: 简易介绍今天要讲解的两个爬虫开发的python库 详细介绍 requests库及函数中的各个参数 详细介绍 tornado 中的httpcilent的应用 ...
- Python 3网络爬虫开发实战》中文PDF+源代码+书籍软件包
Python 3网络爬虫开发实战>中文PDF+源代码+书籍软件包 下载:正在上传请稍后... 本书书籍软件包为本人原创,在这个时间就是金钱的时代,有些软件下起来是很麻烦的,真的可以为你们节省很多 ...
- Python 3网络爬虫开发实战中文 书籍软件包(原创)
Python 3网络爬虫开发实战中文 书籍软件包(原创) 本书书籍软件包为本人原创,想学爬虫的朋友你们的福利来了.软件包包含了该书籍所需的所有软件. 因为软件导致这个文件比较大,所以百度网盘没有加速的 ...
- Python 3网络爬虫开发实战中文PDF+源代码+书籍软件包(免费赠送)+崔庆才
Python 3网络爬虫开发实战中文PDF+源代码+书籍软件包+崔庆才 下载: 链接:https://pan.baidu.com/s/1H-VrvrT7wE9-CW2Dy2p0qA 提取码:35go ...
- 《Python 3网络爬虫开发实战中文》超清PDF+源代码+书籍软件包
<Python 3网络爬虫开发实战中文>PDF+源代码+书籍软件包 下载: 链接:https://pan.baidu.com/s/18yqCr7i9x_vTazuMPzL23Q 提取码:i ...
- Python 3网络爬虫开发实战书籍
Python 3网络爬虫开发实战书籍,教你学会如何用Python 3开发爬虫 本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib.reques ...
随机推荐
- SCOI2013 数数
题目描述 题解: 很玄学的一道数位$dp$,看了很多篇题解才懂. 直接挂$l$的题解. 代码: #include<cstdio> #include<cstring> #incl ...
- mysql alter修改数据库表结构用法
1.alter操作表字段 (1)增加字段 alter table 表名 add 字段名 字段类型: alter table student add name varchar(10): (2)修改字段 ...
- c++_等差素数列
标题:等差素数列 2,3,5,7,11,13,....是素数序列.类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列.上边的数列公差为30,长度为6. 2004年 ...
- matlab ()的用法
经常见到标识符+(),用法比如阵列Y().函数f()..... 时机到了,会总结一下.
- 大数据学习——Linux-SSH报错:Could not resolve hostname centos02: Temporary failure in name resolution
https://blog.csdn.net/mcb520wf/article/details/83303792 随笔异常 ssh: Could not resolve hostname centos0 ...
- python--如何在线上环境优雅的修改配置文件?
1.如何在线上环境优雅的修改配置文件? 原配置文件 #原配置文件 global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 ...
- [USACO10FEB]慢下来Slowing down
线段树 树的dfs序 来自 洛谷 P1982 的翻译 by GeneralLiu 来自 jzyz 的翻译 %mzx 线段树 dfs序 数据结构的应用 “数据结构 是先有需求 再有应用” ...
- [luoguP2948] [USACO09OPEN]滑雪课Ski Lessons(DP)
传送门 f[i][j]表示i时刻能力值为j的最大滑雪数 显然f[0][1]=0,开始搜索 三种转移: ①美美的喝上一杯**:f[i+1][j]=max(f[i+1][j],f[i][j]) ②滑雪,f ...
- [luoguP3694] 邦邦的大合唱站队/签到题(状压DP)
传送门 来自kkk的题解: 70分做法:枚举每个学校顺序,暴力. 100分:状压dp.从队列头到尾DP, 状态:f[i]表示i状态下最小的出列(不一致)的个数. 比如f[1101]表示从头到位为1/3 ...
- loadrunner 并发操作集合点配置
在loadrunner的虚拟用户中,术语concurrent(并发)和simultaneous(同时)存在一些区别,concurrent 是指虚拟场景中参于运行的虚拟用户.而simultaneous与 ...