我试图从网站上搜集一堆搜索结果:
http://www.wileyopenaccess.com/view/journals.html
目前,结果显示在4页上。可以访问第4页with http://www.wileyopenaccess.com/view/journals.html?page=4
我想在某个页面上获取所有结果以便于抓取,但我不知道如何确定哪些请求参数有效。我尝试了几件事:
http://www.wileyopenaccess.com/view/journals.html?per_page=100
http://www.wileyopenaccess.com/view/journals.html?setlimit=100
无济于事。有没有办法检测此搜索的有效参数?
我使用的是BeautifulSoup;是否有一些明显的方法来做到这一点,我忽略了?
由于
答案 0 :(得分:0)
你无法传递任何魔法参数来获取所有链接,但你可以使用 Next 按钮获取所有可用的页面,无论可能有多少页面:
from bs4 import BeautifulSoup
def get_all_pages():
response = requests.get('http://www.wileyopenaccess.com/view/journals.html')
soup = BeautifulSoup(response.text)
yield soup.select("div.journalRow")
nxt = soup.select_one("div.journalPagination.borderBox a[title^=Next]")
while nxt:
response = requests.get(nxt["href"])
soup = BeautifulSoup(response.text)
yield soup.select("div.journalRow")
nxt = soup.select_one("div.journalPagination.borderBox a[title^=Next]")
for page in get_all_pages():
print(page)