基于Python的51job(前程无忧)招聘网站数据采集,通过selenium绕过网站反爬,可以采集全国各地数十万条招聘信息

使用Python编程语言和Selenium库来实现自动化的网页操作,从而实现登录、搜索和爬取职位信息的功能。

首先,导入了所需的库,包括time用于处理时间,selenium用于模拟浏览器操作,csv用于写入CSV文件,BeautifulSoup用于解析网页数据。然后,定义了一个名为login的函数,该函数接受一个WebDriver对象和一个关键词作为参数。

在login函数中,使用WebDriver对象打开51job网站,并通过模拟用户的行为进行登录操作。登录过程中需要输入关键词并点击搜索按钮。然后,使用BeautifulSoup库解析页面源代码,找到包含职位信息的HTML元素,并逐个提取出岗位名、公司、薪资、城市、区县、行业、标签、性质、企业人数和回复等信息。将提取的信息存储在一个列表中,并通过csv库将列表中的数据写入到CSV文件中。

在主函数main中,配置了Chrome浏览器的启动选项,并创建了一个WebDriver对象。接下来,代码循环遍历不同的城市列表,在每个城市中调用login函数进行登录和职位信息的爬取。

代码的运行过程是自动化的,通过模拟浏览器操作来实现登录和搜索功能,然后从搜索结果中提取所需的职位信息,并将其保存到CSV文件中。使用Selenium库可以实现与浏览器相同的操作,包括点击按钮、输入文本、滚动页面等。

主要代码如下:

def main():
    # while True:
        """
        chromeOptions 是一个配置 chrome 启动是属性的类,就是初始化
        """
        option = webdriver.ChromeOptions()
        """
        add_experimental_option 添加实验性质的设置参数
        """
        option.add_experimental_option('excludeSwitches', ['enable-automation'])  # webdriver防检测
        '''
        add_argument 添加启动参数
        '''
        # option.add_argument("--disable-blink-features=AutomationControlled")
        # option.add_argument("--no-sandbox")
        # option.add_argument("--disable-dev-usage")
        # option.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})#不加载图片
        """
        Chrome 配置驱动
        """
        driver = webdriver.Chrome(executable_path='chromedriver.exe',options=option)
        driver.set_page_load_timeout(15)
        list0=[['guangzhou', '广州'], ['shanghai', '上海'], ['shenzhen', '深圳'], ['changsha', '长沙'],['chongqing','重庆']]
        for k in list0:
            login(driver,k)
            time.sleep(15)
        # driver.set_page_load_timeout(15)

        # jugesd(driver)
if __name__ == '__main__':
    headers = {
        'User-Agent':'你的user-agent',
    'Cookie':'你的cookie(一定要登录,不然久不久就会反爬验证)'}
    main()

完整代码可联系我,白嫖勿扰

Python 是一种非常适合编写网络爬虫的语言,因为它有丰富的库支持如 Requests、BeautifulSoup 和 Scrapy 等,可以帮助开发者轻松地抓取网页内容。针对前程无忧51job)和应届生网这类职业招聘网站,你可以按照以下步骤来编写一个基本的网络爬虫: 1. **安装必要的库**: 首先,你需要安装 `requests` 库用于发送 HTTP 请求,以及 `beautifulsoup4` 或 `lxml` 来解析 HTML。 ```bash pip install requests beautifulsoup4 ``` 2. **获取网页源码**: 使用 `requests.get()` 函数获取招聘页面的 HTML 源码,并将其转化为 BeautifulSoup 对象。 ```python import requests from bs4 import BeautifulSoup url = 'https://www.51job.com/search100?jl=0000&kw=%E4%BB%A3%E8%AE%B0%E7%9A%84%E8%AF%95%E4%BD%9C' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') ``` 3. **定位目标信息**: 根据网页结构找到招聘信息的位置,这通常涉及到选择合适的 CSS 或 XPath 选择器。例如,标题可能是 `<h3>` 标签下的文本,而职位描述和链接可能会在 `<p>` 或 `<a>` 中。 ```python jobs = soup.find_all('div', class_='result-info') # 假设这个 div 包含了职位信息 for job in jobs: title = job.find('h3').text.strip() description = job.find('p', class_='job_bt').text.strip() # 这里假设职位描述在一个特定类的 p 元素内 link = job.find('a')['href'] print(f"职位标题:{title}") print(f"职位描述:{description}") print(f"链接:{link}\n") ``` 4. **处理分页和动态加载**: 如果一页包含太多结果或存在分页,可能需要循环请求更多页面,或者处理JavaScript生成的内容。这时可以考虑使用 Selenium 爬虫框架。 5. **保存数据**: 最后,将抓取的数据保存到文件或数据库,以便后续分析或统计。 注意:在实际操作中,务必遵守网站的robots.txt规则并尊重版权,不要频繁取以免对网站服务器造成负担。同时,部分网站可能有爬虫机制,需要适当设置延迟和代理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值