在学习了 python 基础后, 一心想着快速入门爬虫, 因为我就是为爬虫而学的 python, 所以就找了这个豆瓣电影来爬取好了, 废话不多说, 进入正题
1. 找到网页并分析网页结构
首先进入豆瓣电影 Top250 这个网页, 按下 f12 打开开发者工具, 如下图
然后开始分析网页, 点击开发者工具左上角的有个箭头的东西去找你需要找的数据, 在这里我发现每个电影的信息都是在 < li > 的标签内, 所以可以用正则表达式来先提取每一个电影, 然后在分别提取每个电影中的数据每个电影现在的数据都可以获取了, 但是这个 url 只有 25 个电影, 怎样获取下一页的呢? 这里我们可以在每个页面获取下一页的链接, 然后通过循环来继续获取下一页的电影数据即可
我们可以先用开发者工具的箭头点一下后页, 然后就显示右边的箭头数据出来, 这里我们也可以用正则表达式来获取下一页的链接, 然后接下来的工作就是循环了, 好了分析结束, 开始敲代码吧!
2. 用面向对象的方法进行爬取数据
先用 requests 对网页进行请求, 获取网页的 html 结构, 在这里, 为了防止网页的反爬虫技术, 我加了个请求头 (记得使用 requests 库之前先导入, 没有的可以在命令行通过 pip install requests 进行下载)
请求头在开发者工具中查看, 如下图所示
接下用正则表达式进行获取数据
先匹配每一个电影和每一页数据 (使用正则表达式的库是 re)
接下来获取每个电影的数据
注意: 获取到上面的数据, 有的是空的, 所以还需要进行判断是否为空, 为了好看, 我用了三元表达式进行判断, 完成之后把他们存入字典
接下来就是进行循环取下一页的数据了
3. 如果你有点数据库基础的话, 还可以把他们存入数据库, 在这里我把这些数据存入 MySQL 数据库, 代码如下, 需要自己先建好数据库好表格
这是操作数据库的类 (使用的库为 pymysql)
然后回到爬虫类进行把数据存入数据库
4. 成功后你就会在数据库中查到以下数据
END
最后, 非常感谢你看完了这篇文章, 喜欢的话, 可以点下关注, 转发点赞下, 或者有什么问题的话欢迎在留言区留言, 我会认真回答的
ps: 如果需要完整代码的话可以在后台回复 top250 即可, 或者想要什么学习资源也可以后台找我哦
来源: https://juejin.im/entry/5a9fcbe0518825555f0c841a