【Python爬虫】东方财富数据爬取
来源:互联网 发布:软件安全性控制 编辑:程序博客网 时间:2024/06/02 21:01
0.背景
由于工作需要,最近在研究如何从东方财富网页爬取股东增持数据。
网页:http://data.eastmoney.com/executive/gdzjc-jzc.html
1.分析网页请求
打开网页,选择某数据右键查看元素,可以查看该数据在加载后的网页中的位置。
F12打开开发者工具,打开网页查看页面请求,可以发现网页发送了多个请求,请求到的文件包括html、css、js、png等,如下图所示。
网页主框架通过html请求加载,数据不在其中。数据是通过js单独加载的。
2.方案介绍
【方案一】
BeautifulSoup解析网页文件。
将网页保存在本地,python读取后用BeautifulSoup解析获得页面数据。
【方案二】
selenium、PhantomJS、BeautifulSoup组合,通过模拟浏览器打开对应网页后用BeautifulSoup进行解析。
from selenium import webdriver driver = webdriver.PhantomJS() jzc_html = "http://datainterface3.eastmoney.com/EM_DataCenter_V3/api/GDZC/GetGDZC?tkn=eastmoney&cfg=gdzc&secucode=&fx=1&sharehdname=&pageSize=50&pageNum=1&sortFields=BDJZ&sortDirec=1&startDate=2017-11-29&endDate=2017-11-30" driver.get(jzc_html) web_soup = BeautifulSoup(driver.page_source, "lxml") print web_soup.prettify()
【方案三】
前两种方案对于获取当前页面数据还算比较有效,但对第二页数据的获取则束手无策。点击第二页发现网页只发送了一个请求数据的request,这就是数据接口啊。
http://data.eastmoney.com/DataCenter_V3/gdzjc.ashx?pagesize=50&page=2&js=var iTHPTzxw¶m=&sortRule=-1&sortType=BDJZ&tabid=jzc&code=&name=&rt=50406968
用浏览器请求该网页,发现返回值中包含了请求的数据和真实的数据接口。
"url":"http://datainterface3.eastmoney.com/EM_DataCenter_V3/api/GDZC/GetGDZC?tkn=eastmoney&cfg=gdzc&secucode=&fx=1&sharehdname=&pageSize=50&pageNum=2&sortFields=BDJZ&sortDirec=1&startDate=&endDate="
用浏览器请求该接口,正是我们需要的数据,用|分割。pageSize=50表每页50条数据,pageNum=2表示当前请求的是第二页。其他字段容易理解。
既然找到了数据接口,那就可以用urllib来请求,将响应的数据解析为json格式。
import urllib2jzc_html = "http://datainterface3.eastmoney.com/EM_DataCenter_V3/api/GDZC/GetGDZC?" \ "tkn=eastmoney&cfg=gdzc&secucode=&sharehdname=&pageSize=200&pageNum=1&sortFields=NOTICEDATE&sortDirec=1" \ "&fx=2"\ "&startDate="+start_data+"&endDate="+end_datarequest = urllib2.Request(jzc_html)response = urllib2.urlopen(request)body = json.loads(response.read())
尽情的设置参数调戏接口吧,233
阅读全文
0 0
- 【Python爬虫】东方财富数据爬取
- [Python爬虫]爬取东方财富网公司公告需要注意的几个问题
- python 东方财富网&百度股票数据定向爬虫 实例
- python爬虫案例——东方财富股票数据采集
- 【Python爬虫】利用Selenium等待Ajax加载及模拟自动翻页,爬取东方财富网公司公告
- 东方财富网股票数据爬虫
- 【爬虫】python selenium 爬取数据
- Python爬虫爬取NBA数据
- Python requests爬虫爬取小说数据
- Python爬虫:如何爬取分页数据?
- python爬虫爬取网页表格数据
- python爬虫 爬取淘宝网页数据
- 基于正则表达式(python)对东方财富网上证指数吧爬虫实例
- Jsoup读取东方财富网站数据实例
- 网络爬虫之东方财富网股票板块
- Python爬虫---爬取天眼查数据(上)
- python爬虫学习(股票数据爬取)
- Python爬虫:用BeautifulSoup进行NBA数据爬取
- MySQL insert into select锁表的问题(上)
- http协议响应码
- leetcode 214. Shortest Palindrome
- 赋值
- SSM整合(2): spring 与 mybatis 整合
- 【Python爬虫】东方财富数据爬取
- composer方式安装thinkphp5
- Java IO流
- java中判断是否相等
- LeetCode 646. Maximum Length of Pair Chain
- mysql设定或修改密码的三个方法
- 基于已构建S2SH项目配置全注解方式简化配置文件
- USB Properties Descriptor
- selenium基础笔记(一)