检测站点的有效搜索参数? (网络抓取)

时间:2016-06-16 21:39:53

标签: web-scraping beautifulsoup

我试图从网站上搜集一堆搜索结果: 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;是否有一些明显的方法来做到这一点,我忽略了?

由于

1 个答案:

答案 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)