2017-07-31 17 views
1

特定のパラメータでURLを取得し、結果のWebページから新しいURLのリストを読み込んでローカルにダウンロードするスクリプトを作成しようとしています。私はプログラミングに非常に慣れていて、Python 3を一度も使用していないので、少し失われています。ここでパラメータを使用して結果を読み取るスクリプト

は、サンプルコードでは、さらに説明することである。

param1 = 
param2 = 
param3 = 

requestURL = "http://examplewebpage.com/live2/?target=param1&query=param2&other=param3" 

html_content = urllib2.urlopen(requestURL).read() 

#I don't know where to go from here 
#Something that can find when a URL appears on the page and append it to a list 
#Then download everything from that list 

#this can download something from a link: 
#file = urllib.URLopener() 
#file.retrieve(url, newfilelocation) 

リクエストURLからの出力は、XMLやJSONにすることができ、非常に長いページであり、必ずしも必要ではない多くの情報を持っているので、いくつかの後でダウンロードする必要があるURLを見つけるためには、検索の形式が必要です。ページにあるURLは、必要なファイル(.jpg、.catなどで終わります)に直接つながります。

他の情報が必要な場合はお知らせください。これが混乱している場合、私の申し立て。

また、理想的には、ダウンロードしたファイルをすべて、現在の日付と時刻のファイル名で作成された新しいフォルダ(サブディレクトリ)に移動させることができます。

+0

他のHTMLページへのすべてのリンクのHTMLページを解析し、それらの他のページをダウンロードしようとしていますか? –

+0

申し訳ありませんが、これを説明しているはずですが、リンクはダウンロードする必要があるファイルに直接あります。 (それらは.jpg、.catなどで終わります)。編集中の質問 – moon17

答えて

0

コンテンツをレンダリングしない限り、Webクローラと同様のものを構築しようとしているようです。 scrapyからソースコードを調べると、他の人が同様のロジックをどのように書いているかを理解するのに役立ちます。 urllibの代わりにrequestsライブラリを使用することをお勧めします。 Pythonライブラリには、htmlJsonXMLのパーサーが組み込まれています。

ページタイプが不明な場合、ダウンロードしようとしているコンテンツの種類を理解するために、コンテンツタイプヘッダーを調べる必要があります。代わりの戦略があるかもしれません、治療はあなたにもっと多くのアイデアを与えるべきです。

これが役に立ちます。

+0

だからあなたは治療をすることを意味するのですか?それともインスピレーションとして?コーディングの経験が不足しているため、その一部を理解するのが難しくなります。 – moon17

+0

私はあなたがPythonには新しかったと理解していますが、物事を構築したい場合は、人々が同じ分野で行ったことからアイディアを得ることができます。 RTFS(フレンドリーソースを読む)@ moon17は最良の方法の1つです..もしScrapyが複雑に見えたら、Spiderのようなものがありますhttps://github.com/buckyroberts/Spider – Addy

0

返されたページを解析するためにBeautifulSoupをチェックアウトすることをお勧めします。 これで、リンクをループしてリンクアドレスをかなり簡単に抽出し、リンクのリストに追加することができます。

+0

私はそれを見ましたが、XMLのためのBeautifulSoupとHTML?それもJSONで動作する必要があります – moon17

+0

申し訳ありませんが、私はBeautifulSoupがJSONをしないと思います。 – Vorboto

関連する問題