最喜欢的爬取的就是由前端数据,返回的json全是数据特别好弄,而且还可以根据需求构造网址,一次取回所需数据。
这次爬的是东方财富网的股东人数,地址是http://data.eastmoney.com/gdhs/0/2018-06-30.html
页面选中2018中报
可以看到有69页*50行这样多的数据,通过翻页可以看到数据的传输情况。
地址是http://data.eastmoney.com/DataCenter_V3/gdhs/GetList.ashx?reportdate=2018-06-30&market=&changerate==&range==&pagesize=50&page=2&sortRule=-1&sortType=NoticeDate&js=var%20DzSDuvmw¶m=&rt=51196634
pagesize一次获取的数据量,就是返回的json所含数据量,reportdate: 2018-06-30这是报告期,page第几页。
看看json,果然是这样。
知道这些之后就能构造网址例行爬取了。
url ='http://data.eastmoney.com/DataCenter_V3/gdhs/GetList.ashx?reportdate=2018-06-30&market=&changerate==&range==&pagesize=4000&page=1&sortRule=-1&sortType=NoticeDate&js=var%20DzSDuvmw¶m=&rt=51196634'
file = requests.get(url).text
m = re.search('"data":(\[.*\])', file).group(1)
da = pd.read_json(m, dtype={'SecurityCode': str})
da.to_excel('gudongrenshu2018-6-30.xls', encoding='utf-8')
这就是5行爬取3400+数据