基于python(xpath)的-爬取51job网信息(跳过User-Agent)

# -*- coding:utf-8 -*-

import requests
from fake_useragent import UserAgent
from lxml import etree

agent = UserAgent()
url = "http://search.51job.com/list/010000%252C020000%252C030200%252C040000%252C080200,000000,0000,00,9,99,python,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare="
response = requests.get(
    url,
    headers={"User-Agent":agent.random},
)
response.encoding = response.apparent_encoding
root = etree.HTML(response.text)
div_list = root.xpath('//div[@class="dw_table"]/div[@class="el"]')

for div in div_list:
    name = div.xpath('p/span/a/text()')[0]
    name = name.strip()
    company = div.xpath('span[@class="t2"]/a/text()')[0]
    place = div.xpath('span[@class="t3"]/text()')[0]
    money = div.xpath('span[@class="t4"]/text()')
    time = div.xpath('span[@class="t5"]/text()')
    # if not money:
    #     money = "面议"
    # else:
    #     money = money[0]
    money = money[0] if money else "面议"
    time = time[0] if time else "没有时间"
    print("职位名:%s" % name)
    print("公司名:%s" % company)
    print("工作地点:%s" % place)
    print("薪资:%s" % money)
    print("上传时间:%s" % time)
    print("----------------------------")
    # with open('job.csv', 'a', encoding='gb18030') as f:
    #     f.write(name+','+company+','+place+','+money+','+time)
    #     f.write('\n')
    with open('51job.csv', 'a', encoding='gb18030') as f:
        im_list = [name,company,place,money,time,'\n']
        f.write(','.join(im_list))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用PythonXPath从Boss直聘爬取招聘信息的示例代码: ```python import requests from lxml import etree # 设置请求头 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 构造请求URL url = 'https://www.zhipin.com/c101210100/h_101210100/?query=python&page=1&ka=page-1' # 发送HTTP请求 response = requests.get(url, headers=headers) # 解析HTML页面 html = etree.HTML(response.content) # 使用XPath获取招聘信息 job_list = html.xpath('//div[@class="job-list"]/ul/li') for job in job_list: job_name = job.xpath('.//h3/text()')[0] # 职位名称 company_name = job.xpath('.//div[@class="company-text"]/h3/a/text()')[0] # 公司名称 salary = job.xpath('.//span[@class="red"]/text()')[0] # 薪资 job_info = job.xpath('.//div[@class="info-primary"]/p/text()') # 招聘信息 job_city = job_info[0] # 工作城市 job_exp = job_info[1] # 工作经验 job_edu = job_info[2] # 学历要求 print(job_name, company_name, salary, job_city, job_exp, job_edu) ``` 运行代码后,将输出爬取到的招聘信息,例如: ``` Python开发工程师 广州大华软件有限公司 10K-20K 广州 3-5年 本科 Python后端开发工程师 广州恒鼎信息科技有限公司 10K-15K 广州 1-3年 大专 Python开发工程师 广州泰和信息技术有限公司 10K-20K 广州 1-3年 本科 Python开发工程师 广州美鹏科技有限公司 10K-20K 广州 3-5年 本科 Python开发工程师 广州幸福分享络科技有限公司 15K-25K 广州 3-5年 本科 ... ... ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值