夜曲编程-爬虫课-第60题

桐桐打算利用爬虫整理一份本专业可以报考的职位数据,并保存在 Excel 表格中分享给其他同学,需要获取前5页的地区、部门、用人司局和职位名称。

查询职位信息的网址是:
http://zwsearch.huatu.com/search_el/searchzyk.php?act=zyzycx¶m=iPzE5nMlfeMt8rpXP4X4%2B8s5i3jr5q31XqYDuQPPQPDQabhcEZH9C7kp8ueJ%2BEGeHcelVibJR7qhjO6%2FU3YWkeaGhYPcUXq3%2BkkB7%2B2%2BLbvByizaMIDI%2FOIKEmELCTUD7x%2BYXW%2BbbLyMPPrqVRZ5F98&page=1

查询的关键字是:本科、计算机科学与技术
在这里插入图片描述

题目要求:

  1. Excel文档保存路径:/Users/公务员职位信息.xlsx
  2. 工作表命名:计算机科学与技术
  3. 写入顺序为:地区、部门、用人司局和职位名称
  4. 直接提取标签输出内容为空,需要提取标签;
  5. 取出文字内容写入即可,不需要去除文字中的空格;
  6. 最后生成的Excel格式预览:在这里插入图片描述
# 导入requests模块
import requests
# 导入bs4中的BeautifulSoup模块
from bs4 import BeautifulSoup
# 导入pandas模块并以pd调用
import pandas as pd

# 将User-Agent以字典键对形式赋值给headers
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"}

#  新建用于存储地区、部门、用人司局、职位名称的列表
areaList = []
departmentList =[]
companyList = []
positionList = []


# 使用for循环和range()生成1-5的变量并遍历
for page in range(1,6):
    
# 使用格式化组合链接
    url = f"http://zwsearch.huatu.com/search_el/searchzyk.php?act=zyzycx&param=iPzE5nMlfeMt8rpXP4X4%2B8s5i3jr5q31XqYDuQPPQPDQabhcEZH9C7kp8ueJ%2BEGeHcelVibJR7qhjO6%2FU3YWkeaGhYPcUXq3%2BkkB7%2B2%2BLbvByizaMIDI%2FOIKEmELCTUD7x%2BYXW%2BbbLyMPPrqVRZ5F98&page={page}"
    # 使用get()函数请求链接,并且带上headers
    response = requests.get(url, headers=headers)
    # 使用.text属性将服务器相应内容转换为字符串形式,赋值给html
    html = response.text
    # 用BeautifulSoup()传入变量html和解析器lxml,赋值给soup
    soup = BeautifulSoup(html,"lxml")

    content_all=soup.find_all("tr")
    for content in content_all:
        if content.find("td") !=None:
            areaList.append(content.contents[1].string)  #地区
            departmentList.append(content.contents[3].string)  #部门
            companyList.append(content.contents[5].string)  #用人司局
            positionList.append(content.contents[7].string)  #职位名称
            total={"地区":areaList,"部门":departmentList,"用人司局":companyList,"职位名称":positionList}
            
info=pd.DataFrame(total)
writer=pd.ExcelWriter("/Users/公务员职位信息.xlsx")
info.to_excel(writer,sheet_name="计算机科学与技术")
writer.save()
writer.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值