网站首页 > 开源技术 正文
大家好,今天我们来利用python技术助力高考,获取网上的本专科专业选考科目要求,用到的Python模块有:Requests、Json、BeautifulSoup、Pandas ,主要思路是Requests获取接口请求,利用BeautifulSoup 解析网站的数据,最后利用Pandas库生成Excel文件。本期我们来获取江苏省,历史类的所有高校的专业选考科目要求实现的结果展示如下:
下面我们就来看看如何实现:
首先打开网址我们按F12检查网站信息,我们选择江苏,首选科目选择历史,点击查询 浏览器 NetWork中就会显示出调用的URL,和相对应的请求参数
请求参数,经过分析 我们可以得出 江苏代码32 ,历史类代码08 记住这个在后面查看详情里面用到。
这时我们通过requests请求就能得到系统返回的json数据。
下面我们来分析详情的参数:
yxdm为学校编码,yxmc为学校名称,xkm为所选科目:08代表历史
我们利用BeautifulSoup模块进行解析,最终提取出所有的信息导出到excel。
具体实现代码如下:
import requests
from urllib.parse import urlencode
from urllib.parse import unquote
import time
import hashlib
import pandas as pd
import random
from bs4 import BeautifulSoup
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
}
json_data = {
'ssdm': '32',
'sxkm': '08',
'kskms': '',
'xkml': '',
'qttj': '',
'cxtj': ''
}
def get_xk(yxdm, ssmc, zswz,dq):
list = []
url = 'https://xkcx2024/xxdetail.jsp?yxdm={}&yxmc={}&sxkm=08&kskms=&qttj=&cxtj=&xkml='.format(
yxdm, ssmc)
response = requests.post(url, headers=headers)
content = response.text
page = BeautifulSoup(content, 'html.parser')
for trs in page.findAll('tr'):
for tds in trs.findAll('td'):
list.append(tds.text)
chunks = 7
chunks_list = [list[i:i + chunks] for i in range(0, len(list), chunks)]
lists_with_new_element = [sublist + [yxdm, ssmc, zswz, '历史',dq] for sublist in chunks_list]
print(lists_with_new_element)
result.extend(lists_with_new_element)
print(yxdm+':'+ssmc+':已下载...'
if __name__ == '__main__':
result=[]
title = ['序号', '层次', '专业(类)名称', '首选科目', '再选科目及选考要求', '所含专业和代码', '招考方向', '学校代码', '学校名称', '学校网址', '首选科目','地区']
response = requests.post('https://xkcx2024/GetYxxxServlet', headers=headers,data=json_data)
data = response.json()
schools=data['yxs']
for school in schools:
random_time = random.uniform(1, 2)
time.sleep(random_time)
dm=school['yxdm']
mc=school['yxmc']
wz=school['zswz']
dq=school['ssmc']
get_xk(dm, mc, wz,dq)
df = pd.DataFrame(result, columns=title)
df.to_excel('历史类选科.xlsx', index=False)
print('done')
感谢小伙伴们的支持,生成好的excel文件可以后台私信我领取,希望得到大家的关注和点赞,我们下期见。
- 上一篇: css图标—— iconfont
- 下一篇: 免费10年VPS-serv00服务器,注册与自动化保号
猜你喜欢
- 2025-01-12 css图标—— iconfont
- 2025-01-12 怎样才算学会了C++基础,一篇文章学习了解(包含Qt内容)
- 2025-01-12 教你怎么用JavaScript检测当前浏览器是无头浏览器
- 2025-01-12 Python GUI库大盘点,9款热门框架供您选择!
- 2025-01-12 Qt 开发经验总结
- 2025-01-12 WebKit三件套(3):WebKit之Port篇
- 2025-01-12 主流桌面混合应用开发介绍
- 2025-01-12 Qt开发——线程类QThread
- 2025-01-12 SeimiCrawler+SeimiAgent完美解决动态页面渲染Ajax抓取问题
- 2025-01-12 大神总结的Qt开发经验,满满的都是干货
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)