【Python项目实战】爬取微博Top10热搜(保姆级教程)
文章目录
- 一、前言
- 二、项目介绍
- 三、代码编写
- 1. 调用所需要的库文件
- (1)所需要的库及其作用
- (2)代码编写
- 2. 伪装用户,获取网页响应
- (1)解读
- (2)代码编写
- 3. 制定爬取规则
- (1)解读
- (2)代码编写
- 4. 解析源码,获取所需数据
- (1)解读
- (2)代码编写
- 5. 建立Excel表格
- (1)解读
- (2)代码编写
- 6. 保存数据到Excel表格
- (1)解读
- (2)代码编写
- 7. 创建数据库
- (1)解读
- (2)代码编写
- 8. 保存数据到数据库
- (1)解读
- (2)代码编写
- 9. 主函数
- (1)解读
- (2)代码编写
- 10. if __name__ == "__main__"
- 三、完整代码
- 1. 解读
- 2. 完整代码
- 四、结果展示
- 1. 程序运行
- 2. Excel表
- 3. 数据库
- 五、结言
一、前言
回顾2020年,我最大的学习收获莫过于Python。年初时,我还是一个小白,通过观看各大出版社有关于Python的书籍、各类网课以及各大blog网站入门,一路可谓艰辛。如今一眨眼已是年末,在此向大家分享我学习爬虫后的一个小创作、小实战,希望能对各位同样在学习Python语言的朋友们有所帮助。
二、项目介绍
| 项目步骤 |
|---|
| ① 实时爬取微博热搜前十标题 |
| ② 把爬取到的数据保存在数据库中,同时加上爬取时间(年 - 月- 日 - 时:分) |
| ③ 在本地创建一个Excel表格 |
| ④ 把爬取到的数据保存在所创建的Excel表格当中,同时加上爬取时间(年 - 月- 日 - 时:分) |
三、代码编写
1. 调用所需要的库文件
(1)所需要的库及其作用
| 库 | 作用 |
|---|---|
| request | 获取指定网页响应 |
| xlwt | 写入Excel数据 |
| xlwd | 读取Excel数据 |
| re | 正则表达式,用于文字匹配 |
| time | 获取时间 |
| sqlite3 | 进行一系列的数据库操作 |
| BeautifulSoup | 网页解析,获取数据 |
| copy | 复制文件,使得先后不同时间获取到的数据都保存在同一文档 |
(2)代码编写
import urllib.request
import xlwt, xlrd, re, time, sqlite3
from bs4 import BeautifulSoup
from xlutils.copy import copy
2. 伪装用户,获取网页响应
(1)解读
本步骤是让网页无法发现我们是通过Python去爬取,假装是正常访问
(2)代码编写
# askURL伪装+获取网页响应
def askURL(url):# 伪装header = {"User-Agent": "此处粘贴用户浏览器的User-Agent对应值"}request = urllib.request.Request(url, headers=header)response = urllib.request.urlopen(request)html = response.read().decode("utf-8")return html
3. 制定爬取规则
(1)解读
-
爬取规则的制定是根据观察网页的源码所得到的
-
制定爬取规则的用途是告诉程序你要爬取哪一部分的内容,供给
re模块调用
(2)代码编写
# 爬取内容规则
findTexts1 = re.compile(r'(.*?) ', re.S)
findTexts2 = re.compile(r'(.*?)', re.S)
4. 解析源码,获取所需数据
(1)解读
解析源码后,通过制定的爬取规则获取所需数据,保存在一个列表当中
(2)代码编写
def getData(baseurl):# 解析源码html = askURL(baseurl)soup = BeautifulSoup(html, "html.parser")data = []item = soup.find_all('td') # item = str(item)texts = re.findall(findTexts1, item)texts = str(texts)texts
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
