分析了一下楼主给的两个页面,发现其实页面是通过其他链接再加上页码参数,进行Get请求
之后返回json数据再显示在页面上的。
代码以楼主给的两个链接为例,可以用下面的python代码进行数据拉取。
几个参数:
pre是各营业部获取数据的连接,page_num是对应营业部数据的页数。
最后保存为csv文件,我自己保存在D盘,楼主可以自己调整。
# -*- coding: utf-8 -*-
import urllib2
from bs4 import BeautifulSoup, SoupStrainer
import json
import csv
pre="http://data.10jqka.com.cn/interface/market/yybzjsl/CTZQGFYXGSWLDHBLZQYYB/"
#pre="http://data.10jqka.com.cn/interface/market/yybzjsl/HTZQGFYXGSCDSJLZQYYB/"
data_all=[]
page_num=43
#page_num=86
getonly = SoupStrainer('table')
for id_url in range(1,page_num+1):
print "Start to get url:"+str(id_url)
url=pre+str(id_url)
content = urllib2.urlopen(url).read()
obj=json.loads(content)
datapart = obj["data"]
table = BeautifulSoup(datapart, parse_only=getonly)
for id,row in enumerate(table("tr")):
if((id_url!=1 and id==0)or(id==1)):continue
text = ''.join(row.findAll(text=True))
data = text.strip()
data_split = data.split('\n')
data_all.append(data_split)
cvsfile=open('D:\\eggs.csv', 'wb')
recordwriter=csv.writer(cvsfile,delimiter=',')
for line in data_all:
temp_list=[]
for field in line:
temp_list.append(field.encode('gbk'))
recordwriter.writerow(temp_list)
cvsfile.flush()
cvsfile.close()
print "file has been created!"


雷达卡







京公网安备 11010802022788号







