실용적인 콘텐츠: Douban TOP250 영화의 중국어 및 영어 이름, 홍콩 및 대만 이름, 감독, 개봉 연도, 영화 분류 및 등급을 획득하고 데이터를 데이터베이스 및 파일에 저장합니다. 링크는 https://movie.douban.com/top250?start=입니다.
이전에 웹페이지 데이터를 크롤링하는 여러 가지 방법을 소개했습니다. 아래에서 데이터를 크롤링해 보겠습니다.
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)#시간 초과 설정 수프=BeautifulSoup(r.text,html.parser)#파싱 방법 설정, 인쇄할 수도 있습니다(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 코드를 읽은 다음 두 MD5 코드가 동일한지 확인합니다. 그렇지 않으면 업데이트가 없음을 의미합니다. 업데이트되었으며 새 MD5 코드가 파일에 전달되었습니다.
데이터를 크롤링하는 것은 우리가 해야 할 첫 번째 단계입니다. 데이터가 사용되기 전에 오랫동안 저장되어 있었다면 이를 감지해야 합니다. 이는 보다 정확한 데이터를 얻는 방법입니다. 다음 섹션 데이터 분석을 해보겠습니다.