无法使用发布请求从下一页获取结果

时间:2019-05-19 19:14:15

标签: python python-3.x web-scraping

我已经用python编写了一个脚本来从目录中抓取the name of different institutions。必须执行post http请求才能抓取按状态分类的内容。更清楚一点-填写两个字段后填充的结果:

  1. 国家:United States
  2. 状态:Alabama

Website link

我的以下脚本可以从其首页获取内容:

import requests
from bs4 import BeautifulSoup

url = "https://hub.nacacnet.org/institutionmemberdirectory"

with requests.Session() as s:
    s.headers['User-Agent'] = 'Mozilla/5.0'
    r = s.get(url)
    soup = BeautifulSoup(r.text,"lxml")
    payload = {item['name']:item.get('value','') for item in soup.select('input[name]')}
    payload['j_id0:j_id1:j_id2:j_id3:j_id162:j_id163:j_id164:j_id165_1:j_id198:Country'] = 'US'
    payload['j_id0:j_id1:j_id2:j_id3:j_id162:j_id163:j_id164:j_id165_1:j_id634:State'] = 'AL'
    res = s.post(url,data=payload)
    sauce = BeautifulSoup(res.text,"lxml")
    for item in sauce.select(".card-heading span"):
        print(item.text)

但是,当我尝试从下一页获取结果时会遇到麻烦,因为还要遍历5个页面才能获得所有结果。

当我点击下一页按钮并查看chrome dev工具中的参数时,我可以发现这个新字段pageNum: 2,因此我将其添加到有效负载中以从下一页获取结果,但是仍然有第一页的内容。

  

我如何也可以从下一页获取内容?

顺便说一句,硒不是我想应付的选择。

0 个答案:

没有答案