2012-02-02 12 views
0

私はGoogleの抽出結果を見ましたが、これはこれでうまくいきません。私は単にコードに入り、パラメータを変更したいと思います。実行したときには、検索してジョブのタイトル、場所、日付を拾います。これは私がこれまで持っていたものです。どんな助けも素晴らしいだろうし、事前に感謝します。Pythonがmonster.comの検索結果を抽出しました

私は、特定のparams(エンジニアソフトウェアCA)を使用してmonster.com上で検索を実行し、結果をスクラップするスクリプトを使用しました。

#! /usr/bin/python 
import re 
import requests 
from urllib import urlopen 
from BeautifulSoup import BeautifulSoup 

parameters = ["Software","Engineer","CA"] 
base_url = "http://careers.boozallen.com/search?q=" 
search_string = "+".join(parameters) 

final_url = base_url + search_string 

a = requests.get(final_url) 
raw_string = a.text.strip() 


soup = BeautifulSoup(raw_string) 

job_urls = soup.findAll(name = 'a', attrs = { 'class': 'jobTitle fnt11_js' }) 

for job_url in job_urls: 

    print job_url.text 
    print 

raw_input("Press enter to close: ") 

私はこれが標準スクレープとして機能することを知っています。

handle = urlopen("http://jobsearch.monster.com/search/Engineer_5?q=Software&where=AZ&rad=20&sort=rv.di.dt") 
responce = handle.read() 
soup = BeautifulSoup(responce) 

job_urls = soup.findAll(name = 'a', attrs = { 'class': 'jobTitle fnt11_js' }) 
for job_url in job_urls: 
    print job_url.text 
    print 
+0

多分あなたは一番上にSEARCH_STRINGに入れる "&" の代わりに "+" のする必要がありますか? –

+0

を試しても、結果は返されません。しかし、ありがとう。そしてなぜこれが印を付けられているのですか?私のプロジェクトの助けを求めるだけです。私はそれが働くと助けが必要だと思った – Garrett

+0

あなたは何を探していますか?あなたが働いていないものに関する特定の質問がある場合は、それを聞くことができますが、私たちはあなたのためにあなたのプログラムを修正することはできません。 – silent1mezzo

答えて

1

あなたがhttp://careers.boozallen.com/search?q=software+engineer+CAであなたのブラウザをポイントし、HTMLを調べる場合は、このようなHTML表示されます:jobTitleに等しいclass属性で、

<tr class="dbOutputRow2"> 
    <td style="width: 400px;" class="colTitle" headers="hdrTitle"><span class="jobTitle"><a href="http://careers.boozallen.com/job/San-Diego-Network-Engineer%2C-Senior-Job-CA-92101/1645793/">Network Engineer, Senior Job</a></span></td> 
    <td style="width: auto;" class="colLocation" headers="hdrLocation"><span class="jobLocation">San Diego, CA, US</span></td> 
    <td style="width: 155px;" class="colDate" headers="hdrDate" nowrap="nowrap"><span class="jobDate">Jan 5, 2012</span></td> 

あなたが探している情報が<span>タグであります、jobLocation、またはjobDate。ここで

あなたがlxmlを使用して、これらのビットをこすりことができる方法である:

import urllib2 
import lxml.html as LH 

url = 'http://careers.boozallen.com/search?q=software+engineer+CA' 
doc = LH.parse(urllib2.urlopen(url)) 

def text_content(iterable): 
    for elt in iterable: 
     yield elt.text_content() 

data = text_content(doc.xpath('''//span[@class = "jobTitle" 
             or @class = "jobLocation" 
             or @class = "jobDate"]''')) 

for title, location, date in zip(*[data]*3): 
    print(title,location,date) 

利回り

('Title', 'Location', 'Date') 
('Network Engineer, Senior Job', 'San Diego, CA, US', 'Jan 5, 2012') 
('Network Integration Engineer, Mid Job', 'San Diego, CA, US', 'Jan 12, 2012') 
('Systems Engineer, Senior Job', 'San Diego, CA, US', 'Jan 31, 2012') 
('Enterprise Architect, Senior Job', 'Washington, DC, US', 'Jan 23, 2012') 
... 
+0

回答ありがとうございますが、とにかくimport xml.etree.ElementTreeを使って作業するために何かを変更することがあります。私の現在の環境ではlxmlを使用できません。ありがとう。 – Garrett

関連する問題