Dotcpp  >  编程教程  >  Python实战项目  >  Python爬虫入门抓取豆瓣内容一

Python爬虫入门抓取豆瓣内容一

点击打开在线编译器,边学边练

实战内容:获取豆瓣TOP250电影的中英文名、港台名、导演、上映年份、电影分类以及评分,将数据存放到数据库和文件中。链接为:https://movie.douban.com/top250?start=

1. 数据爬取

爬取网页数据的方式我们在前面介绍过多种,下面来进行数据的爬取。

import re
import requests
from bs4 import BeautifulSoup
for i in range(0,2):
    headers = {#这里模拟浏览器进行访问
        'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) 
        AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',
        'Host': '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)

输出结果为:

<!DOCTYPE html>
<html class="ua-windows ua-webkit">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<meta content="webkit" name="renderer"/>
<meta content="always" name="referrer"/>
<meta content="ok0wCgT20tBBgo9_zat2iAcimtN4Ftf5ccsh092Xeyw" name="google-site-verification">
<title>
豆瓣电影 Top 250
</title>
........
</script>
<!-- dae-web-movie--default-759d9f45f7-b69fc-->
<script>_SPLITTEST=''</script>
</link></link></body>
</html>

2.检查数据

这里我们使用Python中的hashlib模块中的mad5()函数,检查代码如下,如果大家是刚刚爬取到的数据,可以省略这一步。

MD5为计算机安全领域常用的一种加密算法。

import hashlib
def vertifyupdate(html):
    md5 = hashlib.md5()
    md5.update(html.encode(encoding = 'utf-8'))
    md5code = md5.hexdigest()
    print(md5code)
    old_html = ''
    htlm_name = 'gp.txt'
    if os.path.exists(htlm_name):
        with open(htlm_name,'r',encoding='utf-8') as f:
            old_html = f.read()
    if md5code == old_html:
        print('数据未更新')
        return False
    else:
        with open(htlm_name,'w',encoding='utf-8') as f:
            f.write(md5code)
        print('数据更新了')
        return True

这个函数需要导入hashlib模块,然后创建一个md5的对象,把当前页面的信息传入,通过使用updata()方法对传入的数据进行MD5运算。

然后使用if语句判断文件是否存在,如果存在就读取其中的MD5码,再通过判断两次的MD5码是否相同,如果一样就表示没有更新,反之则进行了更新,把新的MD5码传到文件中。

3. 总结

爬取数据是我们要做的第一步,如果数据存放了很久再进行使用则需要进行检测,这都是相对简单的步骤,比较麻烦的就在于如何去获取到更精准的数据,下一节我们来数据分析。



本文固定URL:https://www.dotcpp.com/course/328

Python教程
第一章 Python入门
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 Python函数
第六章 Python面向对象编程
第七章 Python模块
第八章 Python异常处理和程序调试
第九章 Python文件及目录操作
第十章 PythonGUI编程
第十一章 Python进程和线程
第十二章 Python数据库管理
第十三章 Python算法
第十四章 Python爬虫
第十五章 Python实战项目
第十六章 后记
Dotcpp在线编译      (登录可减少运行等待时间)