如何使用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=g‌​et_company_graph&sym‌​bol=ADBL&dateRange=1‌​2

所以你也可以尝试阅读它

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分页来抓取页面的主要内容,如果未能解决你的问题,请参考以下文章

Joomla K2 通过将页码添加到分页来更改分页标题

Python+Selenium 自动化实现实例-处理分页(pagination)

Python+Selenium+PhantomJs爬虫 怎么抓取弹出新标签页的内容

有没有办法使用 ApiPlatform 分页来获取总项目?

如何让网页内容分页打印

在 Python 中使用 Selenium 导航并使用 BeautifulSoup 进行抓取