2016-12-18 8 views
0

私は小さなデータスクレイピングプロジェクトに取り組んでおり、ウェブサイトhttps://www.germanystartupjobs.com/からすべての仕事を受けたいと考えています。ジョブはPOST要求としてロードされます。個々のページに行き、POSTリクエストのcURLを取得し、端末で再生して、JSONを取得することができます。私は次の形式を持ってもらうJSONはすべて私がhtml tagと私ができるの内側に何必要があ​​る、今、 異なるページのcURL応答を取得するにはどうすればよいですか?

enter image description here

を(私は Firefox network tabから得るもの、カールは、端末内の同じ提供して提供しました) 、コードスニペットを使用して、その各ページ上の hrefの上で私が scrapy使用

html = data['html'] 
    selector = scrapy.Selector(text=data['html'], type="html") 
    hrefs = selector.xpath('//a/@href').extract() 
    for href in hrefs: 
     // some code 

を反復処理し、大会はページをこするためstart_urlsリストを使用することで、その後、私は内部のすべてのコードを置くことができますparseは私が好きなように機能します。

ここに別の問題があります。それぞれのウェブサイトには17ページあり、最初のページのリンクはhttps://www.germanystartupjobs.com/で、残りのページには同じリンクhttps://www.germanystartupjobs.com/#s=1があります。だから、あなたはリンクに基づいてどのページにいるのかを本当に知ることはできません.3または9とすることができます。私はただ知っていません。 https://www.germanystartupjobs.com/https://www.germanystartupjobs.com/#s=1

が質問を要約すると、私は私が唯一の2つのWebリンクを持っているのPythonを使用して、すべての17ページにこの html = data['html']値を取得するのでしょうか?

答えて

1

ネットワークパネルのPOSTタップを見ると、要求のさまざまなパラメータが表示されます。あなたがいるページはこのタブにあります。

このパラメータをリクエストに渡すことができます(yield scrapy.Request)ので、ページ番号をループしてリクエストに渡します。たとえば、1つのリクエストでJSONオブジェクトの最大ページ番号(max_num_pages)を取得してから、ページ番号をすべて要求するまでページ番号を渡します。

リクエストでdocumentationをチェックしてください。

+0

ありがとうございました。私はすぐにあなたにお返ししようとします。これがうまくいくなら、私はこの答えを受け入れます。今すぐ投票されました。それは良い答えと思われます。 – Chak

+0

こんにちは、私にすべてのページをループするコードを教えてください。私はまだそれを適切に動作させることができませんでした。 – Chak

+0

とにかくここであなたの答えを受け入れます。 – Chak

関連する問題