Python第一个爬虫项目

邵奈一来了 2021-07-20 04:07:04
python开发 python教程


0x00 文章内容
  1. 爬虫博客
  2. 简单讲解

PS:需安装好Python开发环境,前提教程:Python3的安装(Windows),此外,我的编辑器是pycharm,而且,需要学习一些简单的python和HTML基础。

0x01 爬虫博客
1. 爬取网页元素

网页跳转:旷课小王子的博客园
打开网页,右击,选择 检查 (谷歌浏览器)/按 F12
在这里插入图片描述

2. 完整代码
#!/usr/bin/env python 
# -*- coding:utf-8 -*-
from urllib import request
from pyquery import PyQuery as pq
import json
# 定义需要解析的url
url = 'https://www.cnblogs.com/kkxwz/default.html'
# 获取每个item信息并返回
def parse_item(i, e):
doc = pq(e)
title = doc('.postTitle2').text()
titleLink = doc('.postTitle2').attr('href')
postFoot = doc('.postfoot').text()
summary = doc('.c_b_p_desc').text()
result = {
'title': title,
'titleLink': titleLink,
'postFoot': postFoot,
'summary': summary
}
print(json.dumps(result))
return result
# 获取url的内容
with request.urlopen(url) as response:
body = response.read()
doc = pq(body)
items = doc('#main>.post').map(parse_item) #1.定义一个空数组,用于储存提取的结果
with open('kkblog.json', 'wt', encoding="utf-8") as f: # 2.将结果写入JSON文件
f.write(json.dumps(items, ensure_ascii=False))

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
3. 执行前准备工作

a. 需要先安装pyQuery依赖(此步骤为后补上,可忽略截图颜色)
在这里插入图片描述

4. 执行结果

a. 执行,然后查看查看执行结果
在这里插入图片描述
b. 复制到Json数据在线解析界面查看(点击跳转在线解析Json数据
在这里插入图片描述

0x02 简单讲解

1、竟然要爬取网站的内容,应该先清楚爬的是哪里的,所以必须要知道URL。
2、然后,应该清楚网页的内容结构,了解到什么内容对应哪个标签,我们可以先写好,或者把获取URL内容的步骤完成再回来填充,最好是回头再填充。
3、最后获取URL的内容,分析我们要爬取的标签范围,确定是想获取网页里面的哪些信息,然后再遍历出来即可。

0xFF 总结
  1. 入门级别案例,爬虫界的HelloWorld,还是单页面版本的,后期会进行升级。

作者简介:邵奈一
全栈工程师、市场洞察者、专栏编辑
| 公众号 | 微信 | 微博 | CSDN | 简书 |

福利:
邵奈一的技术博客导航
邵奈一 原创不易,如转载请标明出处。


版权声明
本文为[邵奈一来了]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_12564104/2893058

  1. 【推荐】常见的Python数据可视化库
  2. 基于Python3.3+Selenium3.0框架实战Web自动化测试实战(百度网站实测项目)
  3. 【django轻量级框架】用Mysql的各种项目响应速度慢?一招解决!
  4. 【django轻量级框架】Django项目导入css,js,images等静态文件
  5. 【django轻量级框架】HTML上传文件拦截到本地
  6. 【深度学习入门到精通系列】留一交叉验证法Python实现(看不懂你来打我~!)
  7. Python机器学习笔记:sklearn库的学习
  8. python【Opencv计算机视觉库】opencv模块cv2常用函数用法(全)
  9. python基础练习(七)
  10. python基础练习(八)
  11. python基础练习(九)
  12. python基础练习(十)
  13. python新增练习(一)
  14. python新增练习(二)
  15. python新增练习(三)
  16. Python中的排序sorted(d.items(), key=lambda x: x[1])
  17. python 判断字母大小写
  18. python绘制科赫雪花(递归)
  19. 解决cmd命令查看python版本“python不是内部命令或外部命令,也不是可执行程序解决方案”的问题
  20. Python Numpy介绍
  21. python —pandas库常用函数
  22. Python应用matplotlib绘图简介
  23. Python matplotlib高级绘图详解
  24. 入门训练 Fibonacci数列-python实现
  25. Python -二维数组定义
  26. python二进制相加
  27. Python文本处理:解析json格式的数据
  28. 查看python安装路径
  29. Python编程之计算生态
  30. Python-turtle标准库知识小结(python绘图工具)
  31. Python-time标准库知识小结
  32. Python-random标准库知识小结
  33. python安装第三方库的三种方法
  34. python程序的控制结构
  35. Python程序的函数和代码复用
  36. python之组合数据类型
  37. python【力扣LeetCode算法题库】300 最长上升子序列(动态规划)
  38. python【力扣LeetCode算法题库】695- 岛屿的最大面积(深搜)
  39. python【力扣LeetCode算法题库】面试题 01.06-字符串压缩
  40. python【力扣LeetCode算法题库】1160-拼写单词
  41. python【力扣LeetCode算法题库】836- 矩形重叠
  42. python【力扣LeetCode算法题库】409-最长回文串(数学 计数器)
  43. python【力扣LeetCode算法题库】面试题40- 最小的k个数
  44. python【力扣LeetCode算法题库】945- 使数组唯一的最小增量
  45. python【力扣LeetCode算法题库】365- 水壶问题(裴蜀等式)
  46. python【力扣LeetCode算法题库】876- 链表的中间结点
  47. python【力扣LeetCode算法题库】面试题 17.16- 按摩师(DP)
  48. python【力扣LeetCode算法题库】892-三维形体的表面积
  49. python【力扣LeetCode算法题库】999-车的可用捕获量(DFS)
  50. python【力扣LeetCode算法题库】914. 卡牌分组(reduce & collections.Counter)
  51. python【力扣LeetCode算法题库】820- 单词的压缩编码
  52. python【力扣LeetCode算法题库】1162- 地图分析(BFS)
  53. python【力扣LeetCode算法题库】面试题62- 圆圈中最后剩下的数字(约瑟夫环)
  54. python【力扣LeetCode算法题库】912- 排序数组
  55. python【力扣LeetCode算法题库】1111- 有效括号的嵌套深度
  56. python【力扣LeetCode算法题库】289- 生命游戏
  57. python【力扣LeetCode算法题库】12- 整数转罗马数字(打表 模拟)
  58. python【数据结构与算法】内置函数enumerate(枚举) 函数(看不懂你来打我)
  59. python【力扣LeetCode算法题库】13- 罗马数字转整数
  60. python【数据结构与算法】内置函数 zip() 函数(看不懂你来打我)