ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 507|回复: 18

[求助] 求助网页获取数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-11-29 22:25 | 显示全部楼层 |阅读模式
请问我有这个网站   https://www.lijingzy.com/#/index   的登录账号 13952885713   和密码A123456   我想要从这个网站固定模块获取每一个学校的录取专业数据,请问通过EXcel可以获取?
需求格式如附件
网站的固定板块   


image.jpg

获取网站数据.zip

626.55 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2024-11-30 08:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-11-30 11:59 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-1 20:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

请问这个          怎么弄?

TA的精华主题

TA的得分主题

发表于 2024-12-1 20:30 来自手机 | 显示全部楼层
leege86 发表于 2024-12-1 20:12
请问这个          怎么弄?

写代码呗 vba代码

TA的精华主题

TA的得分主题

发表于 2024-12-1 22:48 | 显示全部楼层
要使用VBA从需要用户名和密码登录的网页获取内容,你可以利用Internet Explorer对象或者XMLHTTP请求来实现。这里我将展示如何使用XMLHTTP请求结合基本认证(Basic Authentication)的方式来获取内容。请注意,这种方法适用于支持基本认证的网站。如果网站使用的是表单提交的方式进行认证,那么你需要模拟表单提交的过程,这会稍微复杂一些。

以下是一个使用XMLHTTP请求并结合基本认证的示例代码:

Sub GetWebContent()
    Dim http As Object
    Dim url As String
    Dim username As String
    Dim password As String
    Dim authString As String
    Dim responseText As String
   
    ' 设置URL、用户名和密码
    url = "http://example.com/protectedpage"
    username = "your_username"
    password = "your_password"
   
    ' 创建XMLHTTP对象
    Set http = CreateObject("MSXML2.XMLHTTP")
   
    ' 构建基本认证字符串
    authString = "Basic " & EncodeBase64(username & ":" & password)
   
    ' 打开连接
    http.Open "GET", url, False
   
    ' 添加基本认证头
    http.setRequestHeader "Authorization", authString
   
    ' 发送请求
    http.Send
   
    ' 获取响应文本
    responseText = http.responseText
   
    ' 输出响应文本到立即窗口(Immediate Window)
    Debug.Print responseText
   
    ' 清理
    Set http = Nothing
End Sub

Function EncodeBase64(text As String) As String
    Dim xmlDoc As Object
    Dim xmlNode As Object
    Set xmlDoc = CreateObject("MSXML2.DOMDocument")
    Set xmlNode = xmlDoc.createElement("b64")
    xmlNode.DataType = "bin.base64"
    xmlNode.NodeTypedValue = Stream_StringToBinary(text)
    EncodeBase64 = xmlNode.Text
    Set xmlDoc = Nothing
    Set xmlNode = Nothing
End Function

Function Stream_StringToBinary(Text As String) As Object
    Dim stream As Object
    Set stream = CreateObject("ADODB.Stream")
    stream.Type = 1 ' adTypeBinary
    stream.Open
    stream.WriteText Text
    stream.Position = 0
    stream.Type = 1 ' adTypeBinary
    Stream_StringToBinary = stream.Read
    Set stream = Nothing
End Function
注意:

替换url、username和password为你实际需要访问的网站地址以及你的用户名和密码。
这段代码使用了基本认证(Basic Authentication)。如果目标网站不支持这种认证方式,你可能需要模拟浏览器的行为,例如通过POST方法提交表单。
基本认证通常会将用户名和密码以明文形式编码在HTTP请求头中,因此这种方法可能不适合用于敏感信息。
如果网站使用的是HTTPS协议,确保你的系统支持SSL/TLS连接。
如果你需要处理更复杂的登录过程,比如表单提交,那么你可能需要使用Internet Explorer对象来模拟浏览器行为,但这会涉及到更多的步骤和代码。

TA的精华主题

TA的得分主题

发表于 2024-12-3 21:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这个问题还没有老师帮忙解决吗?

TA的精华主题

TA的得分主题

发表于 2024-12-4 11:12 | 显示全部楼层
  1. import requests
  2. def get_data(url):
  3.     login_data={
  4.         'username': '13952885713',
  5.         'password': 'A123456',
  6.         'saveLogin': 'true'
  7.           }
  8.     login_url='https://ljsxclb.lijingzy.com/login'
  9.     res = requests.session()  # session对象,保持链接
  10.     response = res.post(login_url,data=login_data)
  11.     accesstoken=response.json()['result']
  12.     headers = {
  13.         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
  14.         'accesstoken': accesstoken
  15.     }
  16.     response = res.get(url, headers=headers)
  17.     print(response.status_code)
  18.     response.encoding = 'utf-8'
  19.     for i in response.json()['result']['zyList']:
  20.         print(i['dnzszymc'],i['jhzsrs'],i['xf'],i['xz'],i['lqzdf'],i['lqzdfwc'])
  21. url='https://ljsxclb.lijingzy.com/yuanxiaoLqxxJssdt/getYxByCmd?lqnf=2024&course=1&batch=2&yxzsdm=&yxId=965'
  22. get_data(url)
复制代码

用python挺简单

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-12-4 11:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-12-4 16:21 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-27 01:36 , Processed in 0.038155 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表