ネットワークからこの記事のテキストや画像、唯一学ぶため、交換は、ない任意の商業目的のために、どんな質問ならば、治療のための私達に連絡してください、元の作者に属します。
著者:アマウリ
PS:必要なPythonの学習教材は、小さなパートナーに追加することができた場合は、自分自身を取得するには、以下のリンクをクリックしてください
http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef
エントリーレベルのクラスに属するこの記事の爬虫類、読んでいない古いドライバ。
これは主にニュースのタイトル、著者、ソース、リリースタイム、ニューステキストなど、網易ニュースをクロールしています。
まず、我々はランダムにカテゴリを選択し、163件のサイトを開設し、そしてここで私は分類が全国ニュースで選択します。そして、ソースコード、ソースコードを表示するために右クリックして、中央にニュースのリストページを見つけられませんでした。これは、このページには、非同期的に使用していることを示しています。つまり、取得インタフェースAPIを介してデータです。
だから、F12を確認した後、Googleのブラウザベースのコンソールを開き、ネットワーク上でクリックするために使用することができ、我々はプルダウン、右側に表示され発見されている:"... special/00804KVA/cm_guonei_03.js? .... "
アドレスとレスポンスを開くように、我々は、APIインターフェイスを探していたまさに発見しました。
「cm_guonei_03.js」、「cm_guonei_04.js」それは明らかである、:あなたはアドレスを見ることができ、これらのインタフェースの一定のルールは以下のとおりです。
http://temp.163.com/special/0...*).js
上記のアドレスは、私たちがこの要求をつかむしたい接続です。
次に、あなただけが2つのPythonライブラリを使用する必要があります。
-
リクエスト
-
JSON
-
BeautifulSoup
リクエストライブラリは白がリソースにアクセスするブラウザをシミュレートすることであると言って、ネットワーク要求に使用されます。
当社が収集APIインターフェースであるので、そのフォーマットはJSONですので、パースにJSONライブラリを使用しています。BeautifulSoupはパースHTML文書に使用され、簡単に私たちは、指定のdivの内容を得るのを助けることができます。
ここでは、爬虫類を書き始めます。
最初のステップは、以上の3つのパッケージをインポートすることです:
輸入JSONの インポート要求 から BS4 輸入 BeautifulSoup
その後、我々は、データ取得メソッド内で指定されたページを定義します。
1 DEF get_page(ページ): 2 url_temp = ' http://temp.163.com/special/00804KVA/cm_guonei_0{}.js ' 3。 return_list = [] 4。 ための I における範囲(ページ) 。5 URL = url_temp。フォーマット(I) 6。 応答= requests.get(URL) 7。 のIF response.status_code = 200です!: 8は 続行 9。 コンテンツ= response.text #フェッチ応答体 10 _content = formatContent(コンテンツ) #の形式のJSON文字列 11 結果= json.loads(_content) 12 return_list.append(結果) 13 リターン return_list
この方法では、各ページに対応するコンテンツのリストを取得します:
データが示すの分析の後、次の図は、判明タイトルを取得する必要があり、同様で公開されたニュースコンテンツページです。
今すぐページのURLの内容に取得されたこと、そして次のニューステキストをクロールを開始。
私たちがクロールする前にまず、htmlページの本文テキストを分析し、HTML文書内のテキスト、著者、ソースの場所を見つけます。
ドキュメント内の記事のソースは次のようにどこ私たちは、以下を参照してくださいid = "ne_article_source" 的 a 标签
。上の場所:。テキスト位置:。 class = "ep-editor" 的 span 标签
class = "post_text" 的 div 标签
これらの三つの要素の下に取得コードをインタビュー:
1 def get_content(url): 2 source = '' 3 author = '' 4 body = '' 5 resp = requests.get(url) 6 if resp.status_code == 200: 7 body = resp.text 8 bs4 = BeautifulSoup(body) 9 source = bs4.find('a', id='ne_article_source').get_text() 10 author = bs4.find('span', class_=' EP-エディタ' ).get_text() 11 本体= bs4.find(' DIV '、class_が= ' post_text ' ).get_text() 12 リターンソース、作成者、身体
これまでのところ、すべての私たちは、クロールのデータが収集されている必要があります。
それでは、もちろんそれらのセーブダウン、保存するためにテキストの形をとるダイレクトIを容易にするためです。以下は、最終的な結果です。
JSON形式の文字列、 "タイトル":[ '日付'、 'URL'、 'ソース'、 '著者'、 'テキスト']。