3-ウェブサイトでポジションを検索する

http://www.51job.comにログインし、
[Advanced Search]をクリックします。
検索キーワードpythonを入力し、
領域
として[Hangzhou]選択します。機能カテゴリとして[ Computer Software]を選択し、[Senior Software Engineer]を
選択します。SeniorSoftwareの場合は1〜3年
選択します。エンジニアジョブを検索し、ページ情報を取得します。次の形式の情報を取得します
 。Python開発エンジニア|杭州ナパテクノロジー株式会社|杭州| 0.8-16,000 /月| 04-27Python
 シニア開発エンジニア| Zhongzhexin Technology Consulting Co.、Ltd。|杭州| 1〜150万/月| 04-27Python
 開発エンジニア| Hangzhou New Thinking Computer Co.、Ltd。|杭州-西湖地区| 1-150万/月| 04-27

from selenium import webdriver
from selenium.webdriver import ActionChains
import time

browser = webdriver.Chrome()
browser.get('http://www.51job.com')
browser.implicitly_wait(5)

# 点击高级搜索
search_btn = browser.find_element_by_css_selector('.more')
search_btn.click()

# 输入搜索关键词 python
text = browser.find_element_by_css_selector('.ipt>#kwdselectid')
text.send_keys('python')

# 地区选择 杭州
area_btn = browser.find_element_by_css_selector('.addbut>input')
area_btn.click()
# 1、选中杭州
time.sleep(1)
browser.find_element_by_css_selector('em[data-value="080200"]').click()
# 2、取消当前城市
browser.find_element_by_css_selector('em[data-value="090200"]').click()
# 3、保存选项
browser.find_element_by_css_selector('#work_position_click_bottom_save').click()

# 职能类别 选 计算机软件 -> 高级软件工程师

# 1、点击职能类别“+”
ele = browser.find_element_by_css_selector('#funtype_click')
browser.execute_script("$(arguments[0]).click()", ele)  # js方式点击被挡住的元素
# 2、点击计算机分类
browser.find_element_by_css_selector('#funtype_click_center_left_each_0100').click()
# 3、点击后端开发
browser.find_element_by_css_selector('#funtype_click_center_right_list_category_0100_0100').click()
# 4、点击高级软件工程师
browser.find_element_by_css_selector('em[data-value="0106"]').click()
# 5、保存选项
browser.find_element_by_css_selector('#funtype_click_bottom_save').click()

# 工作年限选 1-3 年
# 1、点击工作年限
browser.find_element_by_css_selector('#workyear_list').click()
# 2、点击工作年限
browser.find_element_by_css_selector('span[title="1-3年"]').click()
time.sleep(2)

# 搜索职位, 抓取页面信息。 得到如下的格式化信息
# 1、点击搜索
browser.find_element_by_css_selector('div[class="btnbox p_sou"]>span').click()
# 2、格式化
# 职位 | 公司 | 城市 | 薪资 | 日期
joblist = browser.find_element_by_css_selector('.j_joblist')
# 获取职位
position_list = joblist.find_elements_by_css_selector('.j_joblist .t>.at')
# 获取公司
company_list = joblist.find_elements_by_css_selector('.j_joblist .er>a')
# 获取城市
city_list = joblist.find_elements_by_css_selector('.j_joblist .info>.at')
# 获取薪资
salary_list = joblist.find_elements_by_css_selector('.j_joblist .info>.sal')
# 获取日期
date_list = joblist.find_elements_by_css_selector('.j_joblist .t>.time')

for i in range(len(position_list)):
    print(f'{position_list[i].text} | {company_list[i].text} | {city_list[i].text.split("|")[0]} | {salary_list[i].text} | {date_list[i].text.replace("发布","")}')

time.sleep(10)
browser.quit()

結果の印刷:

python开发 | 深圳市捷兴电子商务有限公司 | 杭州-滨江区  | 2-3.5/| 01-04
软件开发工程师 | 杭州盛慑信息科技有限公司 | 杭州-西湖区  | 1-1.5/| 02-23
C++开发工程师 | 塔塔信息技术(中国)股份有限公司 | 杭州-滨江区  | 1.5-2.5/| 02-19
三维图形图像算法工程师 | 杭州爱莱达科技有限公司 | 杭州-滨江区  | 2-2.5/| 02-23
Java开发工程师 | 杭州鸿雁电器有限公司 | 杭州-临安区  | 1.5-2/| 02-23
物联网工程师(软件方向) | 杭州中芯微电子有限公司 | 杭州-滨江区  | 0.8-1.5/| 02-23
应用软件工程师 | 杭州纽创电子有限公司 | 杭州  | 0.8-1.2/| 02-23
大数据开发工程师 | 中通供应链管理有限公司 | 杭州-江干区  | 0.7-1.5/| 02-21
WEB前端开发工程师(HTML+CSS+JS) | 杭州大名软件有限公司 | 杭州  | 1.5-2/| 02-21
区块链研发工程师 | 浙商银行股份有限公司 | 杭州  | 2-2.5/| 02-20
人工智能/医学图像算法(ECG心电图方向) | 杭州脉流科技有限公司 | 杭州  | 2-4/| 02-20
PHP高级开发工程师 | 富通天下(浙江)运营中心 | 杭州-拱墅区  | 1.5-2/| 02-19
网络信息安全工程师 | 杭州辰域科技有限公司 | 杭州-拱墅区  | 6-8/| 02-05
WebGIS开发 | 浙江臻善科技股份有限公司 | 杭州  | 10-20/| 01-18
后端研发工程师 | 医惠科技有限公司 | 杭州-滨江区  | 0.8-2/| 12-31
三维图像算法工程师 | 杭州爱莱达科技有限公司 | 杭州-滨江区  | 1-1.5/| 02-23
深度学习/医学图像算法工程师 | 杭州脉流科技有限公司 | 杭州  | 2-4/| 02-20

おすすめ

転載: blog.csdn.net/weixin_45128456/article/details/113988066