2017-08-28 99 views
-1

語境使用BeautifulSoup從網站

我試圖刮掉公司網站(我有權限),並從他們的工作部分崗位刮網站和其他URL的內容。

所有職位都在第一頁(目錄)上列出了高層次的詳細信息,但職位的詳細信息位於獨特的URL上。我想讓我的刮刀能夠識別目錄中的相關位置,然後颳去獨特的網址。

代碼我迄今

import requests 
from bs4 import BeautifulSoup 

url = "http://implementconsultinggroup.com/career/#/6257" 
r = requests.get(url) 

soup = BeautifulSoup(r.content) 

links = soup.find_all("a") 

for link in links: 
    if "career" in link.get("href") and 'COPENHAGEN' in link.text: 
      print "<a href='%s'>%s</a>" %(link.get("href"), link.text) 

這給了我下面的輸出寫到:

View Position 

</a> 
<a href='/career/business-analyst-within-human-capital-management/'> 
Business analyst within human capital management 
COPENHAGEN • We are looking for an ambitious student with an interest in HR 
who is passionate about working in the cross-field of people management, 
business and technology 




View Position 

</a> 
<a href='/career/management-consultants-within-strategic-workforce-planning/'> 
Management consultants within strategic workforce planning 
COPENHAGEN • We are looking for consultants with profound experience from 
other consultancies 

我想刮刀颳去上面的輸出的所有內容。因此,瀏覽URLS並提取這些頁面的內容。

如果有人知道如何做到這一點,或者可以指導我如何爲我的刮刀創建此功能,那麼該功能會很棒。

預期輸出

我想刮板訪問上面這使我的實際工作發佈頁面(http://implementconsultinggroup.com/career/management-consultants-within-strategic-workforce-planning/)的網址,然後提取該頁面的細節。內勞動力戰略規劃

管理顧問公司在實施諮詢集團,我們希望做諮詢行業的差異,因爲我們相信,創建具有影響變革的能力是在日益全球化和湍流成功的先決條件世界。 我們經歷了大量令人興奮的項目,因此我們正在尋找有能力與管理層合作的知名同事,他們希望通過與一羣鼓舞人心的同事合作,爲客戶創造真正的影響力。 工作內容 - 更改與衝擊 的工作內容有所不同,但包括: 設計一個環節,支持企業戰略的戰略人力規劃 建立一個雄心勃勃的和數據驅動的方法,以人力資源規劃 實施人才協助 實現勞動力戰略,職業和績效管理方案 開發和優化的人力資源流程 HRIS和人力資源的數字化 關於提供諮詢服務,制定人力資源戰略 開發團隊和專業知識的領域協助 我們的項目範圍廣泛,通常包括優化管理工具和人力資源部門內部的流程e績效管理解決方案和建立卓越組織。我們的使命之一是不斷改善我們的領導行爲,成爲最有吸引力的工作場所。 我們正在尋找人員 至少持有一個相關碩士學位 至少有3-5年的經驗,最好來自其他顧問 具有設計和實施戰略和/或運營人力規劃的經驗 有能力和慾望勞動力戰略與業務戰略 有在各組織層次 能夠解決問題和領導團隊 你是熱衷於創造成果與客戶建立了良好的合作的能力連接起來,你還相信有鑑賞方法在執行變更。你可以是規範的,但是要知道沒有什麼是黑白的。你喜歡多元化,而且你既有分析能力又有同情心。在你將來的工作中,你希望擔任顧問和項目經理的角色,並且你有興趣作爲顧問處理這個工作的幾個方面。 我們提供什麼? 我們提供優厚的薪酬performancerelated包以及非常能幹的和雄心勃勃的同事之間良好的發展機遇。我們高度自由地履行職責,相互支持,努力不斷幫助客戶創造出色的業績。我們提供真正獨特的文化,有用的同事網絡以及試圖改變諮詢業務以創造影響力的公司。 申請 有關職位的更多信息,請聯繫Julius M. Opstrup,+45 2338 0004。有關招聘過程的更多信息,請聯繫Julie Palmqvist,+45 6124 4847. 申請截止日期爲儘快。我們期待您的迴音! 訪問我們的職業頁面,瞭解有關實施諮詢集團職業生涯的更多信息,或瞭解有關我們哥本哈根辦事處的更多信息。

+0

,爲什麼你重建標籤的循環? –

+0

我只是試圖澄清上面的預期輸出。 @Dmitriy - 沒有具體的原因。你將如何創建循環? –

+0

@PalleBroe,你需要在工作列表頁面上完整地描述工作或工作嗎? –

回答

0

我覺得其他什麼都沒有刮。運行它,看看自己:

import requests 
from bs4 import BeautifulSoup 

base = "http://implementconsultinggroup.com" 
url = "http://implementconsultinggroup.com/career/#/6257" 

req = requests.get(url).text 
soup = BeautifulSoup(req,'html.parser') 
links = soup.select("a.box-link") 

for link in links: 
    res = requests.get(base + link.get("href")).text 
    soup = BeautifulSoup(res,'html.parser') 
    title = soup.select_one("h1.section__title").get_text() if soup.select_one("h1.section__title") else "" 
    details = soup.select_one("div.rte").get_text() 
    print(title, details) 
+0

謝謝Mithu!這似乎運作良好!標題周圍 一個問題 - 我已經加入上述內容。 –

+0

如果有效,請確保按下投票按鈕並接受它作爲答案。這一刻我不在我的電腦附近。我一會兒就會看看你的另一個問題。謝謝。 – SIM

+0

謝謝 - 已經按+1,並期待您對上述問題的回答。 –

1
import requests 
from bs4 import BeautifulSoup 

url = "http://implementconsultinggroup.com/career/#/6257" 
r = requests.get(url) 
soup = BeautifulSoup(r.content) 

position_block = soup.find('ul', class_="list-articles") 
position_list = position_block.find_all('li') 

position_links = [] 

for position in position_list: 
    position_links.append(position.a['href']) 


base_url = "http://implementconsultinggroup.com" 

descriptions = [] 

for link in position_links: 
    r = requests.get(base_url + link) 
    soup = BeautifulSoup(r.content) 

    descriptions.append(soup.find('div', class_='contentwithrelated').get_text()) 
+0

@PalleBroe,對我的解決方案有何反饋? –

+1

我的反饋是,僅有代碼的解決方案對未來的讀者而言價值有限,因爲它沒有立即顯示解決方案的本質。如果你可以用一兩句話來描述你在寫這些時所想的內容,那通常是非常有用的。 – halfer

+0

嗨德米特里, 我無法得到它的運行,但似乎Mithus以上代碼是偉大的工作。感謝您的幫助。 –

相關問題