2016-05-09 188 views
1

刮网站时获得最大页面编号和我很新的蟒蛇,并在大学里刮了一些数据的网站为一疗程:与蟒蛇

Xrel

我能得到我需要的信息。问题是我需要它为每个条目(页面,月份,年份)。

每月的页数不同。有没有什么办法可以提取最大页码,这样我就可以存储它并将其用于循环?

我将不胜感激任何帮助。谢谢!

回答

1

For循环很好,但你不能总是使用它们。在这种情况下,我只需重复按下“下一页”按钮中的链接,直到没有这样的按钮。事情是这样的:

url = <first page> 
while True: 
    # extract data 
    if <there is a next page button>: 
     url = <href of the button> 
    else: 
     break 
+0

THX 。非常好的想法=)我会尝试这个 – Sannin

1

这将让所有的页面,产生的每一个BeautifulSoup对象,链接到下一个页面与类向前锚标记:

import requests 
from urlparse import urljoin 


def get_pages(base, url): 
    soup = BeautifulSoup(requests.get(url).content) 
    yield soup 
    next_page = soup.select_one("a.forward") 
    for page in iter(lambda: next_page, None): 
     soup = BeautifulSoup(requests.get(urljoin(base, page["href"])).content) 
     yield soup 
     next_page = soup.select_one("a.forward") 



for soup in get_pages("https://www.xrel.to/", "https://www.xrel.to/games-release-list.html?archive=2016-01"): 
    print(soup) 
+0

thx给你。但是我已经在我自己的解决方案中实现了Alex的想法。我在前面的课上做了这个,虽然 – Sannin

+0

@Sannin,在另一个说明中,你应该确实检查你是否正确地获取源并捕获连接错误,仅仅因为你没有发现该按钮并不一定意味着它是因为你到达最后一页 –