你甚至不需要scrapy或类似的东西——没有找到“Next”链接的链接,因为它实际上是javascript:
javascript:nextPage(document.paging.totalPages.value)
我使用 Chrome 的开发者工具查看了它实际发出的请求,结果发现它只是一个简单的未经身份验证的 POST 请求。您可以通过以下方式获得所需的任何页面:
import requests
r = requests.post('http://money.rediff.com/indices/bse/bsesmallcap',
data={'currentPageNo': 3, 'RowPerPage': 100})
print r.text
您所要做的就是更改'currentPageNo'
参数以获取您要查找的任何页面。 您可能还可以更改每页的行数,但我没有对此进行试验。 更新:你不能;我试过了。
在实际保存信息方面,您可以使用BeautifulSoup
从每个请求中获取数据并将其存储或保存。鉴于该表'dataTable'
在每一页上都有该类,因此很容易找到。因此,鉴于有 6 页,您最终会得到如下代码:
import requests
from bs4 import BeautifulSoup as BS
for page in range(1, 7):
r = requests.post('http://money.rediff.com/indices/bse/bsesmallcap',
data={'currentPageNo': page, 'RowPerPage': 100})
soup = BS(r.text)
table = soup.find(class_='dataTable')
# Add table information to whatever output you plan to use