selenium 爬boss
# 有问题 from selenium import webdriver
import time
from lxml import etree class LagouSpider(object):
driver_path = r"G:\Crawler and Data\chromedriver.exe" def __init__(self):
self.driver = webdriver.Chrome(executable_path=self.driver_path)
self.url = "https://www.zhipin.com/job_detail/?query=python&city=101010100&industry=&position="
self.positions = []
self.position_dict = {}
self.detail_url_list = []
def run(self):
# 访问首页
self.driver.get(self.url)
# 获取页面信息
# page_source可以获取页面的所有数据,包括每个职位的链接
source= self.driver.page_source
self.parse_list_page(source) def parse_list_page(self,source):
# 每个职位的链接
tree = etree.HTML(source) # 获取职位的链接 ******
li_list = tree.xpath("//div[@class='job-box']/div[@class='job-list']/ul/li")
for li in li_list:
detail_url = li.xpath('.//div[@class="info-primary"]/h3/a/@href')[0]
detail_url = "https://www.zhipin.com"+detail_url
print(detail_url)
self.detail_url_list.append(detail_url)
title = li.xpath('.//div[@class="info-primary"]/h3/a/div[@class="job-title"]/text()')[0]
salary = li.xpath('.//div[@class="info-primary"]/h3/a/span[@class="red"]/text()')[0]
company = li.xpath('.//div[@class="info-company"]//h3/a/text()')[0]
self.position_dict["title"]=title
self.position_dict["salary"]=salary
self.position_dict["company"]=company self.detail_page(detail_url)
# break def detail_page(self,url):
for url in self.detail_url_list:
# self.driver.get(url) # 直接访问这个url
self.driver.execute_script('window.open("%s")'%url) # 新打开一个窗口
self.driver.switch_to.window(self.driver.window_handles[1]) # 切换到新窗口
source = self.driver.page_source
tree = etree.HTML(source)
desc = tree.xpath("//div[@id='main']/div[3]/div/div[2]/div[2]/div[1]/div")
# 获取一个标签(含有其他标签)下所有的文本
desc_text = desc[0].xpath('string()').strip()
self.position_dict['desc_text'] = desc_text
print(self.position_dict)
time.sleep(2)
self.driver.close() # 关闭页面
self.driver.switch_to.window(self.driver.window_handles[0]) # 切换到新窗口 if __name__ == '__main__':
spider = LagouSpider()
spider.run()
selenium 爬boss的更多相关文章
- Java+selenium 爬Boss直聘中职位信息,薪资水平和职位描述
需要下载合适的selenium webdirver jar包和对应浏览器的驱动jar包 import org.openqa.selenium.By; import org.openqa.selen ...
- [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)
转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...
- selenium爬取煎蛋网
selenium爬取煎蛋网 直接上代码 from selenium import webdriver from selenium.webdriver.support.ui import WebDriv ...
- 利用selenium爬取京东商品信息存放到mongodb
利用selenium爬取京东商城的商品信息思路: 1.首先进入京东的搜索页面,分析搜索页面信息可以得到路由结构 2.根据页面信息可以看到京东在搜索页面使用了懒加载,所以为了解决这个问题,使用递归.等待 ...
- 利用Selenium爬取淘宝商品信息
一. Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样.由于这个性质,Selenium也是一 ...
- Scrapy 框架 使用 selenium 爬取动态加载内容
使用 selenium 爬取动态加载内容 开启中间件 DOWNLOADER_MIDDLEWARES = { 'wangyiPro.middlewares.WangyiproDownloaderMidd ...
- 使用selenium爬取网站动态数据
处理页面动态加载的爬取 selenium selenium是python的一个第三方库,可以实现让浏览器完成自动化的操作,比如说点击按钮拖动滚轮等 环境搭建: 安装:pip install selen ...
- scrapy框架 + selenium 爬取豆瓣电影top250......
废话不说,直接上代码..... 目录结构 items.py import scrapy class DoubanCrawlerItem(scrapy.Item): # 电影名称 movieName = ...
- 爬虫学习06用selenium爬取空间
用selenium爬取空间 from selenium import webdriver from lxml import etree import time pro = webdriver.Chro ...
随机推荐
- ESTScan|EORF|Augustus|nr|PSM|
生物信息学方法的目的有二:1.常规找鉴定已知蛋白2.鉴定新蛋白 控制数据库大小可以通过增多酶切使得大数据库灵敏性增高数据量变小: 分步搜索是对于经典方法使用后找不到的新蛋白进行补充挖掘,预测蛋白与高可 ...
- Android下的鉴权实现方案
软件原理 不赘述,参考: 软件License认证方案的设计思路 License文件离线鉴权 机械指纹,不可逆的加密算法,如MD5 功能鉴权,可逆的不对称加密算法,服务端公钥加密,app端私钥解密,如R ...
- LNOI 2019 旁观记
真.懵逼. 退役选手进队了......我忽然后悔自己没去摸鱼...... 但是想一想毕竟有三分之一限制,我也搞不过那帮大佬...... 毕竟zhx还提前一周复习了一下呢 挂一个zhx大佬的博客 传送门 ...
- jmeter如何解决乱码问题
使用jmeter的时候时常遇到中文乱码的情况,下面总结一下几个解决方法,方便以后进行复习. 1.添加后置处理器Beanshell PostProcessor,在输入框内写入“prve.setDateE ...
- libphp5.so可能遇到的问题(转摘)
libphp5.so可能遇到的问题(转摘) 安装完APACHE和PHP5后,经常在启动APACHE载入libphp5.so时发现问题.我把遇到的问题统计下来: 1.undefined symbol:S ...
- Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器.Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名Nginx 里 ...
- LINQ之路 7:子查询、创建策略和数据转换(要点笔记)
匿名类型 上面我们自己定义了类型TempProjectionItem来存放查询的结果.通过使用匿名类型,我们可以省去这种中间类型的定义,而由编译器来帮我们完成: select item.Origina ...
- java处理数据库date类型数据
1.使用Date类和TimeStamp类的valueOf转换时间 Date.valueOf(); TimeStamp.valueOf(); 如果这两种转换直接用在sal语句上,那么最外层要 ...
- Ionic3学习笔记(十)实现夜间模式功能
本文为原创文章,转载请标明出处 目录 创建主题样式 导入 variables.scss 创建 provider 创建 page 在 App 入口处应用主题 效果图 1. 创建主题样式 在 ./src/ ...
- win+E 出现“未指定错误“修复方案
windows7 (win7) win+E 出现"未指定错误----"解决方法 出现该问题的原因:大家使用某种注册表优化所致,如使用优化大师等优化注册表-- 解决方法: 1.如果优 ...