一、前言
回顾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'<td class="td-02">(.*?)</td>', re.S)
findTexts2 = re.compile(r'<a href="(.*?)" target="_blank">(.*?)</a>', re.S)
4. 解析源码,获取所需数据
(1)解读
解析源码后,通过制定的爬取规则获取所需数据,保存在一个列表当中
(2)代码编写
def getData(baseurl):
# 解析源码
html = askURL(baseurl)
soup = BeautifulSoup(html, "html.parser")
data = []
item = soup.find_all('td') # <td class="td-02">
item = str(item)
texts = re.findall(findTexts1, item)
texts = str(texts)
texts
版权声明:本文为wzh365979633原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。