実用的な内容: Douban の TOP250 映画の中国語名と英語名、香港名と台湾名、監督、公開年、映画分類と評価を取得し、データをデータベースとファイルに保存します。リンクはhttps://movie.douban.com/top250?start=です。
これまでに Web ページのデータをクロールするさまざまな方法を紹介しました。以下ではデータをクロールしてみましょう。
importreimportrequestsfrombs4importBeautifulSoupforiinrange(0,2):headers={#これは、'user-agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/52.0.2743.82Safari にアクセスするブラウザをシミュレートします。 /537.36','ホスト':'movie.douban.com'}res='https://movie.douban.com/top250?start='+str(25*i)#25 回 r=requests.get( res,headers=headers,timeout=10)#タイムアウトを設定しますSoup=BeautifulSoup(r.text,html.parser)#解析方法を設定します。print(soup)もできます
出力は次のとおりです。
<!DOCTYPEhtml><htmlclass=ua-windowsua-webkit><head><metacontent=text/html;charset=utf-8http-equiv=Content-Type/><metacontent=webkitname=renderer/><metacontent=alwaysname=referrer /><metacontent=ok0wCgT20tBBgo9_zat2iAcimtN4Ftf5ccsh092Xeywname=google-site-verification><title>豆板映画トップ 250</title>....</script><!--dae-web-movie--default-759d9f45f7- b69fc-- ><script>_SPLITTEST=''</script></link></link></body></html>
ここでは、Python の hashlib モジュールの mad5() 関数を使用します。チェック コードは次のとおりです。データをクロールしたばかりの場合は、この手順を省略できます。
MD5 は、コンピュータ セキュリティの分野で一般的に使用される暗号化アルゴリズムです。
importhashlibdefvertifyupdate(html):md5=hashlib.md5()md5.update(html.encode(encoding='utf-8'))md5code=md5.hexdigest()print(md5code)old_html=''htlm_name='gp.txt 'ifos.path.exists(htlm_name):withopen(htlm_name,'r',encoding='utf-8')asf:old_html=f.read()ifmd5code==old_html:print('データが更新されていません')returnFalseelse: withopen(htlm_name,'w',encoding='utf-8')asf:f.write(md5code)print('データ更新')returnTrue
この関数は、hashlib モジュールをインポートし、次に md5 オブジェクトを作成し、現在のページの情報を渡し、updata() メソッドを使用して受信データに対して MD5 操作を実行する必要があります。
次に、if ステートメントを使用して、ファイルが存在するかどうかを確認し、ファイルが存在する場合は、その中の MD5 コードを読み取り、2 つの MD5 コードが同じであるかどうかを確認します。同じである場合は、更新がないことを意味します。更新され、新しい MD5 コードがファイルに渡されます。
データのクロールは、使用前に長期間保存されているデータを検出する必要がある最初のステップです。より面倒なのは、より正確なデータを取得する方法です。次のセクション データ分析をしてみましょう。