拉勾网 + selenium】的更多相关文章

使用selenium进行翻页获取职位链接,再对链接进行解析 会爬取到部分空列表,感觉是网速太慢了,加了time.sleep()还是会有空列表 from selenium import webdriver import requests import re from lxml import etree import time from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support…
目录 方式一 selenium 方式二普通方法 方式一 selenium from selenium import webdriver import time from selenium.webdriver.common.keys import Keys bro=webdriver.Chrome() def get_resume(bro): li_list=bro.find_elements_by_class_name('con_list_item') for li in li_list: ti…
1.selenium Selenium 本是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.而这一特性为爬虫开发提供了一个选择及方向,由于其本身依赖于浏览器,所以使用Python的selenium库的前提是:需要下载相应的浏览器驱动程序,这里附上Chromedriver的下载地址:chromedriver:(64位的向下兼容,) 2.code: 说明: 1.多线程爬取(producer&consumer modal): 2.结果集的存取文件类型…
1.简介 selenium可以认为是反反爬虫的最佳利器,它基本可以等同于真实的浏览器访问,用它可以加载到动态数据,也省去了cookie的操作,但是用这个有一个重大的效率问题.所以selenium可以用来爬取一些对爬虫限制很大的网站. 2.基本使用 # -*-coding:utf8 -*- #selenium+chromedriver获取动态数据 #selenium相当于是一个机器人.可以模拟人类在浏览器上的一些行为,比如点击,填充数据,删除cookie等. #chromedirver是一个驱动c…
相信很多小伙伴都用过 Selenium 来完成爬虫工作,今天就给大家带来一个神器,可以录制你的浏览器动作,然后直接生成 Selenium 脚本,是不是心动了? 1 Selenium 简介 Selenium 是为了测试而出生的.但是没想到到了爬虫的年代,它摇身一变,变成了爬虫的好工具. 让我试着用一句话来概括 Seleninm:它能控制你的浏览器,有模有样地学人类「看」网页. 那么你什么时候会要用到 Selenium 呢?当你: 1.发现用普通方法爬不到想要的内容: 2.网站跟你玩「捉迷藏」,包含…
目录 0.前言 1.初始化 2.爬取数据 3.保存数据 4.数据可视化 5.大功告成 0.前言 最近,博主面临着选方向的困难(唉,选择困难症患者 >﹏<),所以希望了解一下目前不同岗位的就业前景 这时,就不妨写个小爬虫,爬取一下 拉勾网 的职位数据,并用图形化的方法展示出来,一目了然 整体的 思路 是采用 selenium 模拟浏览器的行为,具体的步骤如下: 初始化 爬取数据,这里分为两个部分:一是爬取网页数据,二是进行翻页操作 保存数据,将数据保存到文件中 数据可视化 整体的 代码结构 如下…
一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉的时候监控http请求,看看请求是否有规律可以模拟.后来发现请求并没有规律,也就是不能够模拟http请求来获取新的数据(也可能是我水平有限,哪位童鞋找到了规律一定要告诉我哦).那么就只有模拟下拉操作了. 想要模拟下拉操作,我们需要用到两个工具,一个是PhatomJs,一个是Selenium. Pha…
 Page Object Model 简称POM  普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driver.get("http://mail.126.com") driver.find_element_by_id("idInput").clear() driver.find_element_by_id("idInput").send_keys(&qu…
Selenium webdriver是完全模拟用户在对浏览器进行操作,所有用户都是在页面进行的单击.双击.输入.滚动等操作,而webdriver也是一样,所以需要我们指定元素让webdriver进行单击.双击.输入等操作,所以元素定位是UI自动化测试的前提条件.可以联想到之前说的页面经常变动的项目为什么不适合进行UI自动化测试,如果元素一直在变动,你就要不停的修改代码,维护工作量太大,投入产出比就太低了. Selenium提供了8种定位方式: l Id l Name l Tag name l X…
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要通过修改部分代码的方式来覆盖这部分修改的内容,大大提高测试效率.但是后期代码维护需要一定的成本,如果系统属于表单比较多或者经常修改改动的系统不太适合使用自动化,因为这个维护成本太高:针对于一些相对比较成熟(改动不是很频繁)的系统和跑回归测试的系统很适合进行自动化测试. 性能自动化即使用性能测试工具(…
from selenium import webdriver     *固定开头     b=webdriver.Firefox()              *打开火狐浏览器    browser.quit()                     *退出火狐浏览器    b.get('http://www.baidu.com')      *打开一个网页    判断 url  (a.current_url),a.title  /找元素方式,          ele.clear()    …
前提:我用selenium IDE录制脚本,我用java写的脚本,如果大家想看的清楚明白推荐java/Junit4/Webdriver 我用的是java/TestNG/remote control 1.当编写完脚本的时候编译的时候提示java.lang.noclassdeffounderror:com/google/xxxxx错误的时候 解决方式:右键你的项目,选择属性,点击java build path 添加selenium-server-standard.jar 当然之前应该已经导入了sel…
第一.需要录制脚本,找个我也不说了.就是在firefox下下载一个selenium-IDE并且安装. 第二.在工具里找到selenium-IDE点击运行. 第三.默认是红色按钮点击状态的,接下来随便你在firefox里怎么操作了,他都会记录下来. 但是这里有一个问题,selenium只能重现在单页面的操作,倘若你的操作导致打开了一个新窗口网页,那么就无法进行重现了.但是脚本可以实现. 第四.保存(可有可无的操作),输出,按照自己喜欢的来,精通的来,我选择的是java/testNG 第五.为了录制…
1. Python2安装 官方网站:https://www.python.org/downloads/ (python3或新版本已经默认集成了pip包和path,安装的时候打勾就行,可以直接跳过下面第2步的pip的安装过程,直接跳到第三步) 下载最新版本的 Python2,安装过程与其它 Windows 程序一样,安装完成在开始菜单中将看到安装好的 Python 目录: 打开 Python 自带的编辑器 IDLE 就可以编写 Python 程序了: 或者通过在 Windows 命令提示符下输入“…
1. 安装python, www.python.org. 下载最新的python,应该是32位的.注意配置环境变量. 2. 安装PIP(pip是一个以Python计算机程序语言写成的软件包管理系统). 进入到安装包里面执行以下命令: python setup.py install 命令列界面 pip的其中一个主要特点就是其方便使用的命令列界面,这让使用者可以透过以下的一句文字命令来轻易地安装Python软件包: pip install some-package-name 此外,使用者也可以轻易地…
<!--test.html--> <html> <head> <title>Set Timeout</title> <script> </script> </head> <body> <input type="text" name="lastname"> <input id = "alert" value = "…
import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.Firef…
一.单个元素的定位方式: By.className(className))By.cssSelector(selector)By.id(id)By.linkText(linkText)By.name(name)By.partialLinkText(linkText)By.tagName(name)By.xpath(xpathExpression) 例子如下: public static void main(String[] args) { WebDriver driver = new Firefo…
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; import org.openqa.selenium.ie.InternetExp…
Selenium WebDriver 用于模拟浏览器的功能,可以做网站测试用,也可以用来做crawler.我是用eclipse开发的,导入selenium-server-standalone-***.jar(Right click project -->Properties --> Java Buid Path --> Libraries --> Add External Jar...).这个包可以在Selenium官网下载. 下面的代码是简单的跟一个网站做交互: public c…
由于最近发现咨询火狐浏览器打不开的问题比较多,现罗列几点解决办法. 1,由于selenium更新3.0的原因导致不在默认支持火狐浏览器,且支持的火狐浏览器大概在45以上的版本,所以很多都由于这个原因导致selenium在运行时打不开浏览器. 解决办法有两种: 1).     可继续使用selenium2.x的版本,但是随着selenium及火狐的不断更新,时间久了始终会有点坑的.但是目前能解决,selenium2.53.6默认支持火狐47及47以下的浏览器. python更新selenium的版…
pip --default-timeout=1000 install -U selenium…
Xpath in selenium is close to must required. XPath is element locator and you need to provide xpath during selenium test script creation. You need to provide any element locator(like id, name, css path, xpath etc.) in target column of selenium IDE so…
这几天在学selenium,大头虾的我.安装环境还是遇到了挺多问题,赶紧来记录下.不然下次又...(参考虫师的<Selenium2 Java自动化测试实战>),就随便写写加深下自己的印象. 1.安装java 访问java官网下载jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载自己需要的版本,我现在使用的是jdk-8u101-windows-x64.exe java环境分JDK和JRE,JDK就是J…
1.怎么 判断元素是否存在? 判断元素是否存在和是否出现不同, 判断是否存在意味着如果这个元素压根就不存在, 就会抛出NoSuchElementException 这样就可以使用try catch,如果catch到NoSuchElementException 就返回false 2.如何判断元素是否出现? 判断元素是否出现,存在两种情况,一种是该元素压根就没有,自然不会出现:另外一种是有这样的元素,但是是hidden状态 可以通过先判断是否存在,如果不存在返回false:如果存在再去判断是否dis…
结合上次研究的selenium webdriver potocol ,自己写http request调用remote driver代替selenium API selenium web driver Json protocol 相关请看 http://www.cnblogs.com/tobecrazy/p/5020741.html 我这里使用的是Gson 和 httpclient 首先,起一个remote sever java -Dwebdriver.ie.driver="IEDriverSer…
之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locator对象 不能够实现Locator对象重名 文件比较大,读写速度没有xml快 所以,重新写了使用dom4j操作xml,使用xml管理Locator对象,能够有效解决以上问题 首先,定义Locator文件 <?xml version="1.0" encoding="UTF-8&…
之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html 配合Jenkins可持续集成:http://www.cnblogs.com/tobecrazy/p/4529399.html 在测试框架中使用Log4J 2 :http://www.cnblogs.com/tobecrazy/p/4557592.html 首先介绍一下grid ,selenium grid 是一种执行测试用例时使用的包含不同平台(windows.Linux.Androi…
前期已经做好使用Jenkins做buildhttp://www.cnblogs.com/tobecrazy/p/4529399.html 做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让整个测试体系: 更容易维护 大大增加代码重用 增加测试系统的稳定性 这里先了解一下我所说的对象库: 所谓的页面对象,是指每一个真是的页面是一个对象. 比如zhihu的登陆页面是一个页面对象,http://www.zhihu.com/#signin 这个页面对象主要包含一个输入邮箱的输入框(一个元素对…
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为,根本操作不了. 也有在网上看到webdriver right click option的一些代码,拿来用发现不能用的. Actions act = new Actions(driver); WebElement link = driver.findElement(By.id("xpath"…