L4.append(x)
#由于同时解四个包太过复杂,python不干,故拆分开来
x=0
while(x<len(L1)):
print(L1[x],’\t’,’\t’,L2[x],’\t’,’\t’,L3[x],’\t’,’\t’,L4[x])
x+=1
这样我们就爬下一页了:经验证无误 。
六、扩大战果(儿时吹的牛皮还是要补的)
前面夸下海口要抓30页,怎么就能没有了呢?其实后面已经基本没有什么了,有兴趣的朋友可以和我一起补补课 。
感觉内容有些多,我在这里简单描述思路,就是我们要分析第一页第二页第三页等之间的目标数据地址的url的相似之处,或者说其中的规律,比如:
第二页:
http://query.sse.com.cn/security/stock/getStockListData2.do?&jsonCallBack=jsonpCallback46762&isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=2&pageHelp.pageSize=25&pageHelp.pageNo=2&pageHelp.endPage=21&_=1517320503162
第三页:
http://query.sse.com.cn/security/stock/getStockListData2.do?&jsonCallBack=jsonpCallback61233&isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=3&pageHelp.pageSize=25&pageHelp.pageNo=3&pageHelp.endPage=31&_=1517320503163
很轻松就可以对比出不同和相似之处,可以说仅仅在个别关键字部分进行了修改 。
故提取三十页的代码,以及之前的各种步骤,我们可以封装到函数以便调取使用:
def find_pageA(c): #根据传递参数c(提取的页数)来选择目标url地址
return ‘http://query.sse.com.cn/security/stock/getStockListData2.do?&jsonCallBack=jsonpCallback13897&isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=’+str(c)+’&pageHelp.pageSize=25&pageHelp.pageNo=’+str(c)+’&pageHelp.endPage=’+str(c)+’1&_=151731428806’+str(c)
def datascreenA(a):#封装解析输出的部分
COMPANY_CODE=jsonpath(a,’$..pageHelp..COMPANY_CODE’)
COMPANY_ABBR=jsonpath(a,’$..pageHelp..COMPANY_ABBR’)
totalShares=jsonpath(a,”$..pageHelp..totalShares”)
totalFlowShares=jsonpath(a,’$..pageHelp..totalFlowShares’)
print(‘公司/A股代码’,’\t’,’公司/A股简称’,’\t’,’A股总资本’,’\t’,’A股流动资本’)
L1=list()
L2=list()
L3=list()
L4=list()
for x in COMPANY_CODE:
L1.append(x)
for x in COMPANY_ABBR:
L2.append(x)
for x in totalShares:
L3.append(x)
for x in totalFlowShares:
L4.append(x)
x=0
while(x<len(L1)):
print(L1[x],’\t’,’\t’,L2[x],’\t’,’\t’,L3[x],’\t’,’\t’,L4[x])
x+=1
def collect_30_pagesA():#调取30页,相当于主函数
c=1
while(c<31):
财路哥.sleep(2)
print(‘第’, c, ‘页:’)
response=requests.get(find_pageA(c),headers=headers)
a='{“content”:’+response.text[19:-1]+’}’
b=json.loads(a)
datascreenA(b)
c+=1
终结
不知不觉写了这么多,真的是闲的太慌了 。其实除了A股还有B股,有兴趣也可以继续爬下去,虽然我不知道有什么价值目前……另外就是前言部分的爬取也可以尝试一下,可能会发现那个文件中的数据又是从其他地方获取的……恕我能力有限,原理不是特别清晰,故而没有深入讲解那个,望各位指教 。当然暴力破解是可行的,但是……又不着急干啥能不用就不用呗,^_^ 。
————————————————
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- ajax中data参数格式解释 ajax中data参数格式
- jquery遍历json数组了解 遍历json数组对象
- js中将json对象转换成字符串 js对象转json字符串
- 蓝牙4.0和5.0音质的区别 蓝牙4.0传输距离
- 微信的网页版传输助手真的好用嘛
- json是什么
- 免费免流量的手机电脑文件传输工具 什么软件可以免流量传文件
- 这是手机与电脑最快的传输方式 电脑和电脑之间传输最快的方法
- 手机电脑传输文件无隔阂 手机与电脑无法传输文件
- 电脑文件远程一键传输 怎么远程传文件