import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from lxml import etree
import re
import pandas as pd
import time
import os
os.chdir('C:/爬虫/拉勾网')
browser=webdriver.Chrome()
wait=WebDriverWait(browser,10)
data=pd.DataFrame(columns=['Name', 'Company', 'Salary', 'Education', 'Size','Welfare'])
def getId():
base_url='https://www.lagou.com/jobs/list_数据分析师?px=default&city=深圳&district={0}#filterBox'
areas=['南山区','福田区','宝安区','龙岗区','龙华新区','罗湖区','盐田区','光明新区','坪山新区','大鹏新区']
ids=[]
areass=[]
for area in areas:
try:
time.sleep(2)
url=base_url.format(area)
browser.get(url)
html = browser.page_source
html = etree.HTML(html)
pages=html.xpath('//*[@id="order"]/li/div[4]/div[3]/span[2]/text()')[0]
for i in range(int(pages)):
html = browser.page_source
html = etree.HTML(html)
items = html.xpath('//*[@id="s_position_list"]/ul/li')
for item in items:
id=re.findall('\d+',item.xpath('./div[1]/div[1]/div[1]/a/@href')[0])[0]
ids.append(id)
areass.append(area)
print(id+','+area+' success')
next=browser.find_element_by_class_name('pager_next ')
next.click()
time.sleep(1)
except:
continue
positions=pd.DataFrame({
'id':ids,'area':areass
})
positions.to_excel('岗位id表.xlsx')
browser.close()
#获取职位信息
def getPosition():
global data
base_url = 'https://www.lagou.com/jobs/list_C?px=default&city=深圳&district={0}#filterBox'
areas = ['南山区', '福田区', '宝安区', '龙岗区', '龙华新区', '罗湖区', '盐田区', '光明新区', '坪山新区', '大鹏新区']
for area in areas:
try:
time.sleep(2)
url = base_url.format(area)
browser.get(url)
html = browser.page_source
html = etree.HTML(html)
pages = html.xpath('//*[@id="order"]/li/div[4]/div[3]/span[2]/text()')[0]
for i in range(int(pages)):
time.sleep(3)
html = browser.page_source
html = etree.HTML(html)
items = html.xpath('//*[@id="s_position_list"]/ul/li')
for item in items:
position={
'Name': item.xpath('div[1]/div[1]/div[1]/a/h3/text()')[0],
'Company': item.xpath('div[1]/div[2]/div[1]/a/text()')[0],
'Salary': item.xpath('div[1]/div[1]/div[2]/div/span/text()')[0],
'Education': item.xpath('div[1]/div[1]/div[2]/div//text()')[3].strip(),
'Size': item.xpath('div[1]/div[2]/div[2]/text()')[0].strip(),
'Welfare': item.xpath('div[2]/div[2]/text()')[0],
'Area':area
}
data = data.append(position, ignore_index=True)
print(str(i)+','+area)
next = browser.find_element_by_class_name('pager_next ')
next.click()
time.sleep(1)
data.to_excel('C岗位.xlsx', index=False)
except:
continue
browser.close()
if __name__ == '__main__':
getPosition()
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
python爬虫案例源码,python爬虫学习,python爬虫案例,python爬取在线网站数据,python爬取网站数据,python数据分析,数据获取,项目实战,python爬虫小例子,python爬虫代码示例,python爬虫简单示例,python爬虫教程学习。
资源推荐
资源详情
资源评论
收起资源包目录
Python爬虫数据分析-获取拉勾网公开招聘数据.zip (20个子文件)
Python爬虫数据分析-获取拉勾网公开招聘数据
__init__.py 0B
2.ipynb 9KB
1.ipynb 1KB
Untitled1.ipynb 3KB
4.ipynb 53KB
7.ipynb 4KB
lagou.py 4KB
lagou2.py 2KB
.ipynb_checkpoints
4-checkpoint.ipynb 72B
Untitled2-checkpoint.ipynb 72B
6-checkpoint.ipynb 72B
important-checkpoint.ipynb 72B
1-checkpoint.ipynb 72B
7-checkpoint.ipynb 72B
2-checkpoint.ipynb 2KB
3-checkpoint.ipynb 72B
Untitled1-checkpoint.ipynb 72B
6.ipynb 11KB
important.ipynb 2KB
3.ipynb 12KB
共 20 条
- 1
资源评论
随风浪仔
- 粉丝: 647
- 资源: 1884
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功