ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 小哥哥请帮我拿到网页上的数据?小女子在此谢过了!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-4-18 19:08 | 显示全部楼层
Rolly2019 发表于 2019-4-18 18:47
代码太高深,我不会编程,看不懂,

为什么运行后,在工作表中没有反应?

?工作表 你要调用函数啊 而且  不能大规模的调用吧,这东西需要等网络延迟的

TA的精华主题

TA的得分主题

发表于 2019-4-18 19:44 | 显示全部楼层
Rolly2019 发表于 2019-4-18 18:47
代码太高深,我不会编程,看不懂,

为什么运行后,在工作表中没有反应?
  1. # -*- coding: utf-8 -*-
  2. # version: Python 3.7.0
  3. import parsel,requests,csv

  4. headers = {'User-Agent': '(KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}
  5. base_url = 'https://www.365area.com/hscode/detail/'

  6. def get_detail_parse(code):
  7.     r = requests.get(url=f'{base_url}{code}', headers=headers).content.decode('utf-8')
  8.     sel = parsel.Selector(r).css('div.odd.green+div.even')
  9.     my_list.append([code, sel.css('::text').re_first('\A\s*(.+?)\s*\Z')])

  10. if __name__ == '__main__':
  11.     codes = ['3926909090',]#编码列表!!!
  12.     my_list = [['编码', '申报要素']]
  13.     for code in codes:
  14.         get_detail_parse(code)
  15.     with open(r'D:\result.csv', 'w', encoding="utf-8-sig", newline='') as f:
  16.         csv.writer(f).writerows(my_list)
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-18 19:53 | 显示全部楼层
autolzg 发表于 2019-4-18 16:27
Sub t()
    For i = 2 To Cells(1048576, 1).End(3).Row
        Cells(i, 2) = Trim(Replace(Replace(G ...

CreateObject("WinHttp.WinHttpRequest.5.1"),这个可以!!!

为什么CreateObject("MSXML2.XMLHTTP") 不行啊???

半天弄不明白,好纠结!!能为我解释一下吗?

TA的精华主题

TA的得分主题

发表于 2019-4-18 21:20 | 显示全部楼层
autolzg 发表于 2019-4-18 16:27
Sub t()
    For i = 2 To Cells(1048576, 1).End(3).Row
        Cells(i, 2) = Trim(Replace(Replace(G ...

大神太厉害了。要是能有注释就更好了。

TA的精华主题

TA的得分主题

发表于 2019-4-18 22:08 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-4-18 23:15 | 显示全部楼层
Rolly2019 发表于 2019-4-18 19:53
CreateObject("WinHttp.WinHttpRequest.5.1"),这个可以!!!

为什么CreateObject("MSXML2.XMLHTTP") ...

我也不知道为什么 应该是网站服务器那边的原因。。。

TA的精华主题

TA的得分主题

发表于 2019-4-19 08:12 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-4-19 15:27 | 显示全部楼层
duquancai 发表于 2019-4-18 16:35
反爬就是不让爬,如果你非要爬,那就叫反反爬

哈哈哈,看我的,我爬

TA的精华主题

TA的得分主题

发表于 2019-4-19 16:51 | 显示全部楼层
EH_LOVE 发表于 2019-4-18 17:21
没有反爬吧,附件

这里的类模块 用F8一步一步运行完 也是云里雾里...

TA的精华主题

TA的得分主题

发表于 2019-4-19 19:05 | 显示全部楼层
autolzg 发表于 2019-4-19 16:51
这里的类模块 用F8一步一步运行完 也是云里雾里...

类模块也就是 简单封装了一下 winhttp5.1这个对象,  因为我老记不住他的方法的那些英文,封装了他能提示 这样用起来就方便一些,仅此而已,和你在外面 cerateobject(winhttp5.1)这个对象 然后来用是一样的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 08:37 , Processed in 0.048241 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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