2016-05-09 90 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,在另一個說明中,你應該確實檢查你是否正確地獲取源並捕獲連接錯誤,僅僅因爲你沒有發現該按鈕並不一定意味着它是因爲你到達最後一頁 –