栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

selenium 爬取智联招聘职位信息

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium 爬取智联招聘职位信息

我们首先观察url规律:

https://sou.zhaopin.com/?jl=653&kw=%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96&p=1

参数:
jl(joblist):职位总数
kw(keywords):关键词
p(page):第几页

然后,我们只需要在一个循环里,指定p的值,就能访问到所有的页面。

#使用循环,设定 url中 最后一个参数 p 的值
for i in range(1,10):
    #访问网页 https://sou.zhaopin.com/?jl=653&kw=%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96&p= i

这里,我们选择让程序阻塞在输入处,手动登录后,再输入任意内容继续进行抓取。

#此处暂停一下,等待浏览器打开网页, 手动登录之后, 在输入任意字符,继续执行
input("input any to continue")

职位具体信息,需要鼠标浮动到职位标签上:

同时,使用键盘进行页面滚动(经测试,这种方法最稳定),保证鼠标能浮动到标签上。  

完整代码:

from selenium import webdriver
from selenium.webdriver.common.action_chains import *
from selenium.webdriver.common.keys import Keys
import time

#设置chrome浏览器的驱动程序路径
chrome_path="C:\Users\Administrator\AppData\Local\google\Chrome\Application\chromedriver.exe"
#使用chromedriver 创建一个浏览器对象
browser = webdriver.Chrome(chrome_path)
#使用浏览器对象打开网址,其中,网址的参数是 经过了 编码转化的,其实是 jl=653&kw=数据可视化&p=1. p=1 表示 第一页,jl=653 表示有 653 个结果
#这个url是,通过手动访问 智联招聘 网址 观察出来的
browser.get('https://sou.zhaopin.com/?jl=653&kw=%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96&p=1')

#此处暂停一下,等待浏览器打开网页, 手动登录之后, 在输入任意字符,继续执行
input("input any to continue")
#打开记录 爬取数据的文件
f = open("data.txt","w",encoding="utf-8")

#使用循环,设定 url中 最后一个参数 p 的值,来爬取多个页面,这里爬取 1-9页,第0页已经打开了
for i in range(1,10):
    try:
        #等待页面加载,睡眠3s
        time.sleep(3)
        #拿到body 标签
        body = browser.find_element_by_tag_name("body")
        #拿到职位div,鼠标浮动在上面会显示  职位 要求 等信息,这是我们需要的
        showList = browser.find_elements_by_class_name("iteminfo__line1__jobname__name")
        # 这个div 中会 存储 具体的职位信息,很多,所以是个数组
        joblist = browser.find_elements_by_xpath("//div[@class='positionlist']/div[@class='joblist-box__item clearfix']")
        
        #遍历 职位div 和职位信息 
        for i in range(len(joblist)):
            info = []
            it=showList[i]
            job=joblist[i]
            # 滚动网页,通过按 键盘的 下建, 按3次
            body.send_keys(Keys.DOWN)
            body.send_keys(Keys.DOWN)
            body.send_keys(Keys.DOWN)
            time.sleep(0.5)
            # 将鼠标浮动到 标签上, 让职位信息 显示出来
            ActionChains(browser).move_to_element(it).perform()
            #记录下职位名称
            info.append(it.text)
            time.sleep(1)

            #获取到 职位信息,它们都在 

标签里 info_detail = job.find_element_by_xpath(".//div[@class='info-detail']") info_detail_content = info_detail.find_element_by_xpath(".//div[@class='info-detail__content']/div[@class='info-detail__content-text']") plst = info_detail_content.find_elements_by_xpath(".//p") time.sleep(0.5) #循环将它们记下来 ilst = [] for p in plst: ilst.append(p.text) info.append(ilst) print(info) #写到文件中 if ilst: f.write(str(info)+"n") f.flush() #进行下一个网页的抓取 browser.get('https://sou.zhaopin.com/?jl=653&kw=%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96&p='+str(i)) except Exception as e: print(e) break f.close()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286793.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号