爬广东省人事考试网考试信息

python爬广东省人事考试网考试信息

  1. 获取源码,用requests获取后发现源码不完整,时间信息缺失,换用selenium获取源码
def 获取(url):

	browser = webdriver.Chrome()
	browser.get(url)
	time.sleep(5)
	html = browser.page_source
	browser.close
	return html

2.得到源码后用beautifulsoup4库进行解析,在这之前我们先审查元素查找我们需要的信息,我们发现我们的目标信息均放在class="examList"的tr标签中,如下图
在这里插入图片描述
每个标签的信息存储方式都是一致的,因此我们任意打开一个tr标签进行分析
在这里插入图片描述
不难发现,名称信息包含在class="name"的a标签中,报名和考试时间包含在四个p标签中,因此用string便可轻松获得目标信息,用循环获取所有考试信息并存入列表中。

def 解析(html):
    soup=BeautifulSoup(html,'lxml')
    allexams=[]
    exams=soup.find_all('tr',class_='examList')
    for i in exams:
        exam=[]
        examname=i.find('a',class_='name')
        exam.append(examname.string[6:])
        
        alltimes=i.find_all('p')
        for t in alltimes:
            exam.append(t.string)
        allexams.append(exam)
    return allexams

3.用format对目标信息进行简单排版打印出来

def 排版(allexams):
    print('{:^30}{:^15}{:^15}{:^15}{:^15}'.format('考试名称','报名开始','报名结束','考试开始','考试结束'))
    L=len(allexams)
    for i in range(L):
        u=allexams[i]
        print('{:<30}{:^15}{:^15}{:^15}{:^15}'.format(u[0],u[1],u[2],u[3],u[4]))

在这里插入图片描述
或者也可以用openpyxl库将信息存入excel表格中,以获得更好的展示效果。

4.源码如下:

from bs4 import BeautifulSoup
from selenium import webdriver
import time

def 获取(url):
    
    browser=webdriver.Chrome()
    browser.get(url)
    time.sleep(5)
    html=browser.page_source
    browser.close()
    return html
    
def 解析(html):

    soup=BeautifulSoup(html,'lxml')
    allexams=[]
    exams=soup.find_all('tr',class_='examList')
    for i in exams:
    
        exam=[]
        examname=i.find('a',class_='name')
        exam.append(examname.string[6:])
        
        alltimes=i.find_all('p')
        for t in alltimes:
        
            exam.append(t.string)
        allexams.append(exam)
    return allexams
        
def 排版(allexams):

    print('{:^25}{:^10}{:^10}{:^15}{:^15}'.format('考试名称','报名开始','报名结束','考试开始','考试结束'))
    L=len(allexams)
    for i in range(L):
    
        u=allexams[i]
        print('{:<25}{:<10}{:<10}{:<15}{:<15}'.format(u[0],u[1],u[2],u[3],u[4]))
        
def main():

	url='http://rsks.gd.gov.cn/wsbs/zyjsryzgks/2020/index.html'
    html=获取(url)
    allexams=解析(html)
    排版(allexams)
    
if __name__=='__main__':
    main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值