我已经用python编写了一个脚本来从目录中抓取the name of different institutions
。必须执行post http请求才能抓取按状态分类的内容。更清楚一点-填写两个字段后填充的结果:
United States
Alabama
我的以下脚本可以从其首页获取内容:
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
,因此我将其添加到有效负载中以从下一页获取结果,但是仍然有第一页的内容。
我如何也可以从下一页获取内容?
顺便说一句,硒不是我想应付的选择。