Практическое содержание: Получите китайские и английские названия, имена Гонконга и Тайваня, режиссеров, годы выпуска, классификации фильмов и рейтинги фильмов Дубана, входящих в ТОП250, и сохраните данные в базах данных и файлах. Ссылка: https://movie.douban.com/top250?start=.
Ранее мы представили множество способов сканирования данных веб-страниц. Давайте просканируем данные ниже.
importreimportrequestsfrombs4importBeautifulSoupforiinrange(0,2):headers={#Это имитирует браузер для доступа к пользовательскому агенту:'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)#Установите метод синтаксического анализа, вы также можете распечатать(суп)
Результат:
<!DOCTYPEhtml><htmlclass=ua-windowsua-webkit><head><metacontent=text/html;charset=utf-8http-equiv=Content-Type/><metacontent=webkitname=renderer/><metacontent=alwaysname=referrer /><metacontent=ok0wCgT20tBBg o9_zat2iAcimtN4Ftf5ccsh092Xeywname=google-site-verification><title>250 лучших фильмов с Дубаном</title>.....</script><!--dae-web-movie--default-759d9f45f7-b69fc-->< script>_SPLITTEST =''</script></link></link></body></html>
Здесь мы используем функцию mad5() в модуле hashlib в Python. Код проверки следующий. Если вы только что просканировали данные, вы можете пропустить этот шаг.
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):wit Hopen(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, передать информацию текущей страницы и выполнить операции MD5 с входящими данными с помощью метода updata().
Затем используйте оператор if, чтобы определить, существует ли файл. Если он существует, прочитайте в нем код MD5, а затем определите, совпадают ли два кода MD5. Если они одинаковы, это означает, что обновления нет. он был обновлен, и в файл передан новый код MD5.
Сканирование данных — это первый шаг, который нам нужно сделать. Если данные хранились в течение длительного времени, прежде чем их использовать, их необходимо обнаружить. Это относительно простые шаги. Более трудная часть — это получение более точных данных. следующий раздел Давайте проведем анализ данных.