https://www.hkexnews.hk/sdw/search/searchsdw_c.aspx
港交所沪股通深股通数据披露页面

该网站支持查询沪港通股票每日持股机构/券商的持股数据,有效期一年以内的。通俗得讲就是新闻里说的牛逼的北上资金每天买卖股票的数量,可以一定程度反应外资对该公司的受欢迎程度。

做这个爬虫其实是半年前的想法,因为本人持有的伊利股份是被外资大举买入的公司。所以想通过分析外资持股比例,来做一些研究。但是因当时没有学习Python,所以都是一页一页手动Ctrl+C加Ctrl+V。比较累,都是泪。参考了一点资料,感谢CSDN,并获得大师指点,终于搞成了,感谢。

好了废话不说,先上代码。

from  lxml import etree
import requests
import csv
import osheaders={"User-Agent":"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"}
url="https://www.hkexnews.hk/sdw/search/searchsdw_c.aspx"
datatime = {'__EVENTTARGET': 'btnSearch','__EVENTARGUMENT':'','__VIEWSTATE': '/wEPDwULLTIwNTMyMzMwMThkZHNjXATvSlyVIlPSDhuziMEZMG94','__VIEWSTATEGENERATOR': '3B50BBBD','today': '20190922','sortBy': 'shareholding','sortDirection': 'desc','alertMsg':'','txtShareholdingDate': '2019/08/22','txtStockCode': '90887','txtStockName': '伊利股份','txtParticipantID':'','txtParticipantName':''}
repensoe=requests.post(url,headers=headers,data=datatime)
text=repensoe.text
html1 = etree.HTML(text)
div = html1.xpath("//div[@id='pnlResultNormal']//tbody/tr")
data = []
print("--" * 2)
valuetime = html1.xpath("//input[@id='txtShareholdingDate']/@value")
print(valuetime[0]+"有数据")for tb in div:participant_id = tb.xpath("./td[1]/div/text()")[1]participant_name = tb.xpath("./td[2]/div/text()")[1]participant_address = tb.xpath("./td[3]/div/text()")[1]right = tb.xpath("./td[4]/div/text()")[1]percent = tb.xpath("./td[5]/div/text()")[1]datadic = {"日期": valuetime[0], "参与者编号": participant_id, "中央系统参与者名称": participant_name, "地址": participant_address, "持股量": right,"占比": percent}data.append(datadic)filenme = '20190822' + ".csv"csvhead = ["日期", "参与者编号", "中央系统参与者名称", "地址", "持股量","占比"]os.getcwd()
os.chdir("D:\\600887")
with open(filenme, 'w', newline='') as fp:write = csv.DictWriter(fp, csvhead)write.writeheader()write.writerows(data)

此代码可以自动获取指定日期的数据,并且自动保存成*.CSV文件到D:\600887文件夹。
程序调用了,requests库获取数据,lxml库解析数据,csv和os库来导出csv文件到指定文件夹下。

requests.post是模拟浏览器与网站服务器之间的数据输入输出,有点类似工控里的控制字。在弄这个爬虫时,也学习了一些最简单的HTML和CHROME使用知识。知道通过F12来运行开发者模式来查看当鼠标点击时,浏览器和服务器之间到底输入输出了什么内容。同时,分析网页的原HTML代码,定位具体数据在代码中的位置,方便使用xpath来解析、查询具体的位置。下面是几张网页解析的图片:
相关输入的命令

当点击搜寻时,浏览器发送的Data Form

网页源代码中存放数据的table

最终爬取的数据格式,最近伊利被外资疯狂抛售,看来激励计划被鄙视了

使用Python爬虫自动爬取沪港通每日持股数据相关推荐

  1. Python爬虫,爬取51job上有关大数据的招聘信息

    Python爬虫,爬取51job上有关大数据的招聘信息 爬虫初学者,练手实战 最近在上数据收集课,分享一些代码. 分析所要爬取的网址 https://search.51job.com/list/000 ...

  2. 如何去使用Python爬虫来爬取B站的弹幕数据?

    哔哩哔哩众所周知是弹幕的天堂,视频观看人数越多,弹幕也就越多.今天小千就来教大家如何去使用Python开发一个爬虫来爬取B站的弹幕数据. 1.弹幕哪里找? 平常我们在看视频时,弹幕是出现在视频上的.实 ...

  3. Python爬虫:爬取华为应用市场app数据

    爬取华为应用商店的所有APP名称和介绍,因为页面数据是ajax异步加载的,所以要找到对应的接口去解析数据. 爬取华为应用市场app数据 一.分析网页 1. 分析主页 2. 分析appid 3. 分析u ...

  4. [python爬虫] BeautifulSoup爬取+CSV存储贵州农产品数据

    在学习使用正则表达式.BeautifulSoup技术或Selenium技术爬取网络数据过程中,通常会将爬取的数据存储至TXT文件中,前面也讲述过海量数据存储至本地MySQL数据库中,这里主要补充Bea ...

  5. 【Python爬虫】爬取酷狗TOP500的数据

    该文利用Requests和BeautifulSoup第三方库,爬去酷狗网榜单中酷狗TOP500的信息. 首先分析页面:https://www.kugou.com/yy/rank/home/1-8888 ...

  6. Python爬虫:爬取“Boss直聘”招聘数据

    hello 大家好~ 又是元气满满的一天呢~ 既然元气满满,要不要搞点事情,譬如说,爬取"Boss直聘"(此处模仿歪果仁讲话更带感)的招聘数据~ 说走咱就走,说干咱就干~" ...

  7. 【python爬虫】爬取美味不用等餐厅数据

    人的生活一般离不开衣食住行,今天就来扒一扒餐厅数据,看看大家附近都有什么餐厅,餐厅的评分.价格.位置.招牌菜.订座电话等数据. 一.手机与电脑配置好抓包状态: 对于手机app.微信小程序数据,抓包是最 ...

  8. Python爬虫 - scrapy - 爬取妹子图 Lv1

    0. 前言 这是一个利用python scrapy框架爬取网站图片的实例,本人也是在学习当中,在这做个记录,也希望能帮到需要的人.爬取妹子图的实例打算分成三部分来写,尝试完善实用性. 系统环境 Sys ...

  9. python爬虫之爬取网页基础知识及环境配置概括

    记:python爬虫是爬取网页数据.统计数据必备的知识体系,当我们想统计某个网页的部分数据时,就需要python爬虫进行网络数据的爬取,英文翻译为 spider 爬虫的核心 1.爬取网页:爬取整个网页 ...

  10. python爬虫练习--爬取站长素材中免费简历模板

    python爬虫练习--爬取站长素材中免费简历模板 一.需求 二.代码 1. 引入库 2. main() 3. saveData(div_list) 4. 收尾 结语 一.需求 此代码是为完成波波老师 ...

最新文章

  1. (转)HBase二级索引与Join
  2. 成为Java GC专家(5)—Java性能调优原则
  3. 干粉灭火器的维护保养
  4. 40、Power Query-Text.Combine函数进阶
  5. 使用$.ajax向服务器发送请求
  6. HTTP协议理解——计算机网络
  7. typedef 及其与struct的结合使用
  8. Julia: Dates =DateFormat, format,parse.......
  9. 线性代数及matlab实现,线性代数及其MATLAB应用
  10. ITIL 4 Foundation题目-4
  11. # iOS项目——IM聊天工具(集成融云SDK)
  12. 串口termios函数
  13. WEB-互补色与对比色的计算与获取 (实用、赞)
  14. 网页中有大量图片加载很慢,用什么方法进行优化
  15. MySQL查询为啥慢了?
  16. 计算机硬件功能作用,cpu的作用和主要功能是什么
  17. 【风控系列】3. 高效的风控业务流程
  18. 七日杀服务器怎么修改天数,七日杀游戏里怎么修改天数 | 手游网游页游攻略大全...
  19. 6月22日!苹果WWDC大会,全球免费参加-首次在线举行!
  20. git从一个分支合并到另一个分支

热门文章

  1. java怎么编写木马,实现简单木马免杀(示例代码)
  2. 计算机的硬盘配额如何更改,磁盘配额是什么怎么设置
  3. 朗豫:储备池和借贷是MOV重点发力的方向
  4. Android开发 应用软件更新通用方式--强制/非强制/远程控制/浏览器 更新
  5. 将网页上的MathJax复制到word中
  6. matlab读取文件xlsfinfo,Matlab读写excel文件函数
  7. Windows 7笔记本创建wifi热点供手机上网教程
  8. 持续分化的 NFT 市场:新的金字塔正在形成
  9. 可以替代树莓派4(raspberry pi 4B)的tinker board 2
  10. 【高老师UML软件建模基础】20级云班课习题答案合集