51job_selenium测试2
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门
https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6EmUbbW&id=564564604865
# -*- coding: utf-8 -*-
"""
Spyder Editor This is a temporary script file.
""" import requests,bs4,openpyxl,time,selenium
from openpyxl.cell import get_column_letter,column_index_from_string
from selenium import webdriver
excelName="51job.xlsx"
sheetName="Sheet1"
wb1=openpyxl.load_workbook(excelName)
sheet=wb1.get_sheet_by_name(sheetName)
start=1 charset="gb2312"
site="http://jobs.51job.com/all/co198308.html"
browser=webdriver.Firefox()
browser.get(site)
linkElem=browser.find_element_by_link_text("下一页")
linkElem.click()
#elem = browser.find_element_by_class_name('el')
#返回标签的值
#elem.text
#elems = browser.find_elements_by_class_name('el')
elem=browser.find_elements_by_class_name('el')
div1=elem[0].text
div2=elem[1].text #每个网站爬取相应数据
def Craw(site): res=requests.get(site)
res.encoding = charset
soup1=bs4.BeautifulSoup(res.text,"lxml")
div=soup1.select('.el')
len_div=len(div)
for i in range(len_div):
#print ("i:",i)
content=div[i].getText()
content_list=content.split('\n') name=content_list[1]
#print ("name:",name)
education=content_list[2]
#print ("education:",education)
position=content_list[3]
#print ("position:",position)
salary=content_list[4]
#print ("salary:",salary)
date=content_list[5]
#print ("date:",date) sheet['A'+str(i+2)].value=name
sheet['B'+str(i+2)].value=education
sheet['C'+str(i+2)].value=position
sheet['D'+str(i+2)].value=salary
sheet['E'+str(i+2)].value=date '''
Craw(site)
wb1.save(excelName)
'''
Finding Elements on the Page
WebDriver
objects have quite a few methods for finding elements on a page. They are divided into the find_element_*
and find_elements_*
methods. Thefind_element_*
methods return a single WebElement
object, representing the first element on the page that matches your query. The find_elements_*
methods return a list of WebElement_*
objects for every matching element on the page.
Table 11-3 shows several examples of find_element_*
and find_elements_*
methods being called on a WebDriver
object that’s stored in the variable browser
.
Table 11-3. Selenium’s WebDriver
Methods for Finding Elements
Method name |
WebElement object/list returned |
---|---|
browser.find_element_by_class_name(name) |
Elements that use the CSS class |
browser.find_element_by_css_selector(selector) |
Elements that match the CSS |
browser.find_element_by_id(id) |
Elements with a matching |
browser.find_element_by_link_text(text) |
|
browser.find_element_by_partial_link_text(text) |
|
browser.find_element_by_name(name) |
Elements with a matching |
browser.find_element_by_tag_name(name) |
Elements with a matching tag |
Except for the *_by_tag_name()
methods, the arguments to all the methods are case sensitive. If no elements exist on the page that match what the method is looking for, the selenium
module raises a NoSuchElement
exception. If you do not want this exception to crash your program, add try
and except
statements to your code.
Once you have the WebElement
object, you can find out more about it by reading the attributes or calling the methods in Table 11-4.
Table 11-4. WebElement Attributes and Methods
Attribute or method |
Description |
---|---|
|
The tag name, such as |
|
The value for the element’s |
|
The text within the element, such as |
|
For text field or text area elements, clears the text typed into it |
|
Returns |
|
For input elements, returns |
|
For checkbox or radio button elements, returns |
|
A dictionary with keys |
Table 11-5. Commonly Used Variables in the selenium.webdriver.common.keys
Module
Attributes |
Meanings |
---|---|
|
The keyboard arrow keys |
|
The ENTER and RETURN keys |
|
The |
|
The ESC, BACKSPACE, and DELETE keys |
|
The F1 to F12 keys at the top of the keyboard |
|
The TAB key |
51job_selenium测试2的更多相关文章
- 51job_selenium测试
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]
目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...
- Apache Ignite之集群应用测试
集群发现机制 在Ignite中的集群号称是无中心的,而且支持命令行启动和嵌入应用启动,所以按理说很简单.而且集群有自动发现机制感觉对于懒人开发来说太好了,抱着试一试的心态测试一下吧. 在Apache ...
- 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...
- TechEmpower 13轮测试中的ASP.NET Core性能测试
应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的Web框架,初创公司尤其如此.此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚.在选择框架时, ...
- .NET Core系列 :4 测试
2016.6.27 微软已经正式发布了.NET Core 1.0 RTM,但是工具链还是预览版,同样的大量的开源测试库也都是至少发布了Alpha测试版支持.NET Core, 这篇文章 The Sta ...
- 渗透测试工具BurpSuite做网站的安全测试(基础版)
渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...
- 在ubuntu16.10 PHP测试连接MySQL中出现Call to undefined function: mysql_connect()
1.问题: 测试php7.0 链接mysql数据库的时候发生错误: Fatal error: Uncaught Error: Call to undefined function mysqli_con ...
- 【初学python】使用python调用monkey测试
目前公司主要开发安卓平台的APP,平时测试经常需要使用monkey测试,所以尝试了下用python调用monkey,代码如下: import os apk = {'j': 'com.***.test1 ...
随机推荐
- linux内核期中总结
20135132陈雨鑫 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ...
- 20135337——Linux实践二:模块
一.编译&生成&测试&删除 1.编写模块代码,查看如下 gedit 1.c(编写) cat 1.c(查看) MODULE_AUTHOR("Z") MODUL ...
- 剑指offer:数组中重复的数字
题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度 ...
- PAT 1047 编程团体赛
https://pintia.cn/problem-sets/994805260223102976/problems/994805277163896832 编程团体赛的规则为:每个参赛队由若干队员组成 ...
- Jmeter 发测试报告到邮箱,expand/collapse 图片不显示
由于发送到邮箱中html文件是不包含expand/collapse 资源文件的,所以导致邮箱中这两个图片没有显示,解决方法有两种: 1. 使用http能访问的图片链接地址 修改change中的图片资源 ...
- App WebView实例化
a,高级设置里的环境变量 jdk的配置 b,下载Google的sdk,里面直接包含eclipse 1,新建一个项目 2,起个名字 3,设么走不做,next 4,只操作选择显示的三种方式 5,next什 ...
- ERP开源框架 + 二次开发平台 介绍
经历了多年软件开发,深受网络大侠们的资源共享才得以有所成绩, 本人主要是做企业ERP软件,一直有个感受,开发具体某个功能不难,但随着需求的增加,管理庞大的代码却成了最大的问题 而为企业管理所做的开发, ...
- 形象地理解Cookie和Session
Cookie和Session的形象理解 通过实际生活中的银行卡来理解Cookie和Session间的关系: Cookie相当于银行卡 Session相当于银行账户 结合到银行存钱和取钱的过程来理解: ...
- 自学Linux Shell15.1-处理信号
点击返回 自学Linux命令行与Shell脚本之路 15.1-处理信号 Linux使用信号与系统上运行的进程进行通信.可以使用这些信号控制Shell脚本的运行,只需要让shell脚本在接收到来自Lin ...
- 自学Zabbix8.1 Regular expressions 正则表达式
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix8.1 Regular expressions 正则表达式 1. 配置 点击Adm ...