Indeeds APIを使用してジョブリストをスクラップしています。彼らのAPIは1コールにつき25の結果しか得られないので、範囲を反復する必要があります。JSON値をAPIコールから抽出して変数として使用する
私のnumresults変数として使用する、返される結果の数(範囲の場合)を知る必要があります。今はブラウザで同じ検索を行い、手動で結果を入力しています。
複数の国や検索用語を繰り返し処理したいので、JSONにあるnumresultsに "totalResults"という値を渡す必要があります。
この値を抽出する方法がわかりません。
コールの後すぐにこれを行うことができますか(JSONはどこに保存されますか)、最初にJSONファイルを作成する必要はありますか?ここで
は私の作業スクレーパーである:ここでは
import requests
api_url = 'http://api.indeed.com/ads/apisearch? publisher=XXXXXXXXXXX&v=2&limit=100000&format=json'
Country = 'au'
SearchTerm = 'Insight'
number = -25
numresults = 3925
# must match the actual number of job results to the lower of the 25 increment or the last page will repeat over and over
#so if there are 392 results, then put 375
for number in range(-25, numresults, 25):
url = api_url + '&co=' + Country + '&q=' + SearchTerm + '&start=' + str(number + 25)
response = requests.get(url)
f = open(SearchTerm + '_' + Country +'.json','a')
f.write (response.content)
f.close()
print 'Complete' , url
返されるJSONのサンプルです:
{
"version" : 2,
"query" : "Pricing",
"location" : "",
"dupefilter" : true,
"highlight" : true,
"start" : 1,
"end" : 25,
"totalResults" : 1712,
"pageNumber" : 0,
"results" : [
{
"jobtitle" : "New Energy Technical Specialist",
"company" : "Rheem",
etc.
ありがとうございました。私はそのモジュールを使用しようとしていましたが、何らかの理由であなたの例が見えるまで正しくできませんでした。 –
問題はありませんが、負荷と負荷の違いについても注意してください(最後のs)。答えが=であれば解決した問題に印を付けることを忘れないでください) – SnoozeTime