2013-11-20 19 views
1

我試圖做後續的使用Python和美麗的湯以皮卡文本:頁面上上不是直接的網頁

  1. 皮卡文本(不一樣的瀏覽器打開)
  2. 處理多頁

的情況是:

我想使用Python和Beautifulsoup拿起荷蘭的列表的網站公司上。

我試過了下面的鍵,但是沒有一個能解決問題。

soup.find_all('span') 
soup.find_all('a') 
soup.find_all('td') 
soup.find_all('tr') 
soup.find_all("tr",{"class":"even"}) 

然後我從主網頁,製表符 「VIND EEN expediteur」,然後 「香椿 全部LEDEN」 發現,它會導致this member page。然而,實際上當直接鍵入此網址時,它不會進入成員列表頁面。

那麼我該如何挑選成員名單?

另一個非常重要的問題是:頁面長達45,也許將來它會發生變化。我如何知道Python代碼能夠逐頁選擇它們?

+0

http://www.fenex.nl/over-fenex/ledenlijst/zoekresultaat-ledenlijst我在此頁看不到任何成員。你看到他們了嗎?也許我必須在看到他們之前授權? – itdxer

+0

感謝您的評論。主要網站是http://www.fenex.nl。在主網站上,點擊標籤「Vind een expediteur」,然後「Toon alle leden」,它會導致成員列表頁面。 –

+0

@MarkK itdxer的鏈接是你剛纔指示他去的地方。所有的「Bedrijf」會員? – TankorSmash

回答

1

你可能會嘗試爲頁面創建一些機器人。 BeautifulSoap是用於輕鬆解析html文本的庫,這就是所有。如果你想一頁接一頁,你必須使用urllib來寫。這是一個簡單的例子:

import urllib 
from BeautifulSoup import * 

url = "http://www.domain.com/page/path?page=" 
count_of_pages = 10 

for page in xrange(1, count_of_pages): 
    response = urllib.urlopen("%s%d" % (url, page)) 
    webPage = BeautifulSoup(webFile.read()) 

    # Parse page with great module BeaurifulSoap 

但是,這段代碼可以幫助您正常加載頁面。此頁面從AJAX獲取數據。看看這個頁面上:

http://www.fenex.nl/CMS/asynchronousrendering/CrmSearchResultFenexMemberCompanies/CrmSearchResultFenexMemberCompaniesByMemberCriteriaRenderControl.aspx?_=1384960662265&cid=9&pageNr=1&fenexSearchId=-214748364

我你使用chorme您可以按Ctrl + Shift + J,打開選項卡Network並重新加載頁面。你可以看到所有需求,在這個列表中你可以找到正確的數據。

+0

非常感謝itdxer教我做多頁。這太棒了! –

+0

加上:AJAX對我來說是一件新事物。很高興能夠學習使用Chrome查看實際圖片的方式。但是當我打開鏈接時,它會給出一個空白頁,上面寫着「Er zijn geen bedrijven gevonden met de opgegeven criteria。」。所以我想它每次都會改變。 –

+0

是的。此鏈接有現場時間。你只需要得到這個鏈接的正確規則,並在打開頁面之前在Python代碼中描述你的邏輯。 – itdxer