目录
(一)概述
(二)获得HTML
requests模块
获取headers
(三)爬取数据
正则表达式
re模块
正则提取
(四)保存数据
(五)实践-爬取B站top100
(一)概述
网页中的信息,大部分会出现在网页的源代码中,而爬虫的本质,就是从网页的源代码中爬取所需要的信息。
具体步骤可以概括为:伪装成User-Agent向网页服务器发送请求,获得响应,将响应解析成HTML源代码,再通过正则表达式等匹配手段提取出位于源代码中的特定信息,再将所提取的信息保存到Excel或数据库中,供数据可视化和数据分析使用。
欲实现以上步骤,我们需要导入re、bs4、requests(或者urllib.request)、xlwt和sqlite3模块,它们的功能如下:
# 向服务器发送请求并解析响应(following2选1)
import urllib.request
import requests
# 定位信息,匹配信息
from bs4 import BeautifulSoup # 定位标签
import re # 进行正则匹配
# 保存数据
import xlwt # 保存到Excel
import sqlite3 # 保存到数据库
(二)获得HTML
requests模块
我们以requests模块举例,urllib模块中也有同样功能的方法。在requests模块中,我们可以使用get方法来向服务器发送请求并返回响应,再通过text方法将响应解析成HTML。在get方法中,我们主要需要的参数是URL(网址)和headers(用于伪装成浏览器)。我们以爬取b站top100举例:
import requests
url = 'b站排行榜网址'
head = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) '
'AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/104.0.5112.81 '
'Mobile Safari/537.36 '
'Edg/104.0.1293.54'
} # 获取方法看下文
response = requests.get(url, headers=head)
print(response.text)
输出为网页的HTML代码:
(在终端中HTML代码会堆在一起,很难看,可以单独创建一个HTML文件拷贝进去)
获取headers