
障碍与失败,是通往成功最稳靠的踏脚石,肯研究、利用它们,便能从失败中培养出成功。
DOWNLOAD_URL = 'http://movie.douban.com/top250/' html = requests.get(url).text tree = lxml.html.fromstring(html)
观察该网站 html 结构

可知该页面下所有电影包含在 ol 标签下。每个 li 标签包含单个电影的内容。
使用 XPath 语句获取该 ol 标签
movies = tree.xpath("//ol[@class='grid_view']/li")
在 ol 标签中遍历每个 li 标签获取单个电影的信息。

以电影名字为例
for movie in movies: name_num = len(movie.xpath("descendant::span[@class='title']")) name = '' for num in range(0, name_num): name += movie.xpath("descendant::span[@class='title']")[num].text.strip() name = ' '.join(name.replace('/', '').split()) # 清洗数据
其余部分详见源码

检查“后页”标签。跳转到下一页面
next_page = DOWNLOAD_URL + tree.xpath("//span[@class='next']/a/@href")[0]
返回 None 则已获取所有页面。
创建 CSV 文件
writer = csv.writer(open('movies.csv', 'w', newline='', encoding='utf-8')) fields = ('rank', 'name', 'score', 'country', 'year', 'category', 'votes', 'douban_url') writer.writerow(fields)
其余部分详见源码
先在 mysql 中创建数据库与表,表的属性应与要插入的数据保持一致
连接数据库 db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='syb123', db='douban',charset='utf8')
创建游标 cur = db.cursor()
将获取的电影信息导入数据库
sql = "INSERT INTO test(rank, NAME, score, country, year, " \ "category, votes, douban_url) values(%s,%s,%s,%s,%s,%s,%s,%s)" try: cur.executemany(sql, movies_info) db.commit() except Exception as e: print("Error:", e) db.rollback()


因 Windows 系统默认以 ANSI 编码打开 Excel,所以直接用 Excel 打开 csv 文件会出现乱码,需对其重新编码。
以上所有内容可以在 80 行 Python 代码内完成,很简单吧
源码:https://github.com/AlexRedfield/douban_movies_top250
原文链接:https://segmentfault.com/a/1190000011964958
微信后台回复 python、自动化、golang 即可获得相应课程的试听资料
Python 实战班 17 期报名开始
招生要求:
想往开发或者运维开发方向发展,Python 基础为零或薄弱,但能读懂 shell 或者其它任何一门语言的同学。
课程内容:
精简版 CMDB
html+css+js 多种前端技术结合
ajax 异步请求操作
分页搜索功能
常见数据库设计原则、CMDB 表结构实战、Mysql 实操
独立完项目、了解完整的 Web(LAMP) 架构
Nginx 日志统计分析与多为可视化
用 Python 处理 Nginx 日志文件,进行多维度数据统计分析
根据 ip、访问地址和访问状态等数据统计,统计结果存入数据库
Highcharts 等流行前端技术多维度,将分析结果可视化展示
快速构建使用监控系统
Python 读取机器的实时使用数据,通过 Http 请求将数据入库
设计数据入库的 API,收集不同机器的数据
前端将内存数据读出,视化展示折线图
独立完成项目,掌握 Python 常用的 time 等模块
咨询报名联系:
QQ(1):979950755 小月
QQ(2):279312229 ada
WeChat : 1902433859 小月
WeChat : 1251743084 小单
开课时间:11月25日
课程大纲:http://51reboot.com/course/actual/
(阅读原文,即可跳转)





