如何使用Python和Selenium分页来抓取页面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Python和Selenium分页来抓取页面相关的知识,希望对你有一定的参考价值。
我一直试图在网站http://merolagani.com/CompanyDetail.aspx?symbol=ADBL的“价格历史”标签下废弃该表
我使用Selenium来自动化过程,但实际上找不到实际结果,也无法更改到下一页
答案
编辑:经过几次测试后,我看到这个网址只提供了绘图/图表在页面上使用的数据,而不是来自"Price History"
的数据。我没有看到"Price History"
数据的网址,所以这个答案没有解决问题。它需要更多地挖掘请求和代码。
页面是使用ASP.Net
创建的,它具有非常奇怪的系统来向服务器发送信息。
它使用JavaScript
和<form>
来发送许多信息(在名称为_VIEWSTATE
的字段中)而不是链接。
JavaScript
从网址中读取数据(如JSON)
http://merolagani.com/handlers/webrequesthandler.ashx?type=get_company_graph&symbol=ADBL&dateRange=12
所以你也可以尝试阅读它
import requests
url = 'http://merolagani.com/handlers/webrequesthandler.ashx?type=get_company_graph&symbol=ADBL&dateRange=12'
r = r.requests(url)
data = r.json()
print('OK:', data['msgType'])
print('Symbol:', data['symbol'])
print('Name:', data['name'])
for row in data['quotes']:
print(' date:', row['date'])
print(' open:', row['open'])
print(' close:', row['close'])
print(' high:', row['high'])
print(' low:', row['low'])
print('volume:', row['volumen'])
print(' rsi:', row['rsi'])
print('----------------------')
结果:
OK: ok
Symbol: ADBL
Name: Agriculture Development Bank Limited
date: 12/18/2016
open: 540.0
close: 540.0
high: 540.0
low: 525.0
volume: 6847.0
rsi: 0.0
----------------------
date: 12/19/2016
open: 535.0
close: 520.0
high: 535.0
low: 520.0
volume: 6963.0
rsi: 0.0
----------------------
date: 12/20/2016
open: 520.0
close: 520.0
high: 530.0
low: 505.0
volume: 9974.0
rsi: 0.0
----------------------
以上是关于如何使用Python和Selenium分页来抓取页面的主要内容,如果未能解决你的问题,请参考以下文章
Python+Selenium 自动化实现实例-处理分页(pagination)