抓取和解析多页(aspx)选项卡

2024-09-24 22:19:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在搜集灰狗比赛的信息。例如,我想刮http://www.gbgb.org.uk/RaceCard.aspx?dogName=Hardwick%20Serena。这个页面显示了狗Hardwick Serena的所有结果,但是它分为几个页面。在

检查页面时,会在“下一页”按钮下显示:

<input type="submit" name="ctl00$ctl00$mainContent$cmscontent$DogRaceCard$lvDogRaceCard$ctl00$ctl03$ctl01$ctl12" value=" " title="Next Page" class="rgPageNext">. 

我希望有一个HTML链接,可以在scrape的下一次迭代中使用,但是运气不好。 进一步的检查,通过查看网络流量,可以发现浏览器发送的消息非常长(哈希?)\u VIEWSTATE的字符串等。可能会保护数据库?在

我正在寻找一种方法来抓取一只狗的所有页面,要么遍历所有页面,要么增加页面长度,在页面1上显示100多行。底层数据库是.aspx。在

我使用的是python3.5和beauthoulsoup。在

当前代码:

^{pr2}$

Tags: org信息数据库httpwww页面ukaspx
1条回答
网友
1楼 · 发布于 2024-09-24 22:19:22

在这种情况下,对于请求的每个页面,POST请求都是用url编码的参数__EVENTTARGET&;__VIEWSTATE

  • __VIEWSTATE可以很容易地从input标记中提取
  • __EVENTTARGET对于每个页面都是不同的,值是从javacript函数传递给每个页面链接的,因此可以使用regex提取它:

    <a href="javascript:__doPostBack('ctl00$ctl00$mainContent$cmscontent$DogRaceCard$lvDogRaceCard$ctl00$ctl03$ctl01$ctl07','')">
        <span>2</span>
    </a>
    

python脚本:

^{pr2}$

相关问题 更多 >