2017-08-28 4 views
-1

コンテキスト私は(私が権限を持っている)会社のウェブサイトをこすりし、自分の仕事のセクションからの仕事の位置を抽出しようとしているウェブサイトから

を他のURLのWebサイトやコンテンツをこすりするBeautifulSoupを使用しました。

すべての位置は、最初のページ(ディレクトリ)に高いレベルの詳細とともに表示されますが、位置の詳細は一意のURLになります。私はスクレーパーがディレクトリ内の関連する位置を特定し、ユニークなURLを掻き集めることができるようにしたい。

コードIは、これまで

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 

は、私は上記の出力から、すべてのコンテンツを掻き取るスクレーパーをしたいと思います。そこで、URLを掻き集めて、それらのページの内容を抽出します。

誰かがそれを行う方法を知っていたり、スクレーパーのためにこの機能を作成する方法のガイドを私に指示することができれば素晴らしいと思います。

期待される出力

私はスクレーパーが実際のジョブポスティングページ(http://implementconsultinggroup.com/career/management-consultants-within-strategic-workforce-planning/)に私をもたらした上記のURLにアクセスして、そのページから詳細を抽出したいです。戦略的な要員計画内

管理コンサルタント ではコンサルティンググループを実装し、我々が影響して変更を作成する機能がますますグローバルと乱で成功するための前提条件であると考えているため、我々は、コンサルティング業界での違いを確認したいです世界。 私たちはエキサイティングなプロジェクトの摂取量が非常に多くなったため、経営幹部との深い知識を持つ有能な同僚を募集しています。 仕事内容 - インパクト と変更の仕事内容は異なりますが、含まれています、才能の実装要員計画 に野心的かつデータ駆動型アプローチの構築を支援する戦略的な要員計画 の事業戦略 実装をサポートしていますリンクや 設計人員戦略をキャリアおよび業績管理プログラム 人事プロセスの開発と最適化 HRISとHRの数値化 人事戦略の開発に関するコンサルティングサービスの提供 チームと専門知識の開発の支援 私たちのプロジェクトは幅広く、通常は管理の最適化HR、peopl内のツールとプロセスeパフォーマンス管理ソリューションと組織の卓越性の確立。私たちの使命の一部は、リーダーシップ行動を継続的に改善し、働く最も魅力的な場所になることです。 私たちは人を探しています 少なくとも1つの関連修士号を保持 最低でも3〜5年の経験があり、他のコンサルタントからの方が望ましい 戦略的および/または運用的な人員計画の設計と実施に経験があります 人員戦略とビジネス戦略を結びつけたいという希望 すべての組織レベルでクライアントとの良好な協力関係を確立する能力がある 問題を解決してチームを導くことができる あなたは結果を生み出すことに熱心であり、変更の実行であなたは規範的になることができますが、何も白黒ではないことを認識しています。あなたは多様性を愛し、あなたは分析的でも共感的でもあります。将来の仕事では、顧問とプロジェクトマネージャーの両方の役割を担いたいと思っています。コンサルタントとして仕事のいくつかの側面を扱うことに興味があります。 私たちは何を提供していますか? 我々は、魅力的なパフォーマンス関連の報酬パッケージと、優秀かつ有力な同僚の間で優れた開発の機会を提供しています。私たちは、高い自由度を持って責任を持って仕事をし、常に優れた結果を生み出すために、より良いものになるよう努力しています。私たちは真にユニークな文化、有益な同僚のネットワーク、コンサルティングのビジネスを変えて影響を受けた変化を作り出そうとする会社を提供しています。 詳細については、Julius M. Opstrup、+45 2338 0004までお問い合わせください。採用プロセスの詳細については、Julie Palmqvist、+45 6124 4847までお問い合わせください。 締め切りは早めです。返信お待ちしています! Implement Consulting Groupのキャリアについての詳しい情報や、コペンハーゲン事務所の詳細については、キャリアページをご覧ください。

+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

ありがとうミツ!これはうまくいくようです! タイトルの周りの1つの質問 - 私は上記に追加しました。 –

+0

それが動作する場合は、投票ボタンを押して答えとして受け入れてください。私はこの瞬間に私のPCの周りにいません。すぐに私はあなたの追加の質問を見ていきます。ありがとう。 – 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

私のフィードバックは、ソリューションの本質をすぐには示していないため、コード専用ソリューションは将来の読者にとっては価値が限られているということです。あなたがこれを書いているときに思っていたことを記述した1つか2つの文章を接頭辞として付けることができれば、それはしばしば非常に便利です。 – halfer

+0

こんにちはDmitriy、 私はそれを実行することができませんでしたが、上記のMithusのコードは素晴らしいと思われる。しかし、助けてくれてありがとう。 –

関連する問題