在浏览器中打开百度首页地址(https://www.baidu.com/ ,然后找到搜索框下面的“百度热搜”,如图1所示。
图1 确认“百度热搜”位置
在键盘中按下F12快捷键,打开浏览器开发者工具(这里使用谷歌浏览器 ,然后在顶部导航条中选择“Elements”选项,接着单击导航条左侧的图标,再用鼠标选中第一条热搜标题,此时将显示热搜信息所对应的HTML代码位置。具体操作步骤如图2所示。
图2 获取热搜标题对应的HTML代码
在没有学习爬虫的解析模块前,可以使用re模块与正则表达式来实现数据的匹配。爬虫程序实现的具体步骤如下
(1 分别导入urllib.request与re模块,分别用于发送网络请求和数据的解析工作。代码如下
01 import urllib.request # 导入urllib.request模块
02 import re # 导入re模块
(2 创建send_request()方法,在该方法中需要先设置请求地址和请求头信息,然后发送网络请求,接着读取服务器响应的HTML代码并进行UTF-8解码,最后将HTML代码返回。代码如下
03 # 实现发送网络请求,返回响应结果
04 def send_request(url,headers):
05 # 创建Request对象
06 r = urllib.request.Request(url=url,headers=headers)
07 response = urllib.request.urlopen(r) # 发送网络请求
08 # 读取HTML代码并进行utf-8解码
09 html_text = response.read().decode('utf-8')
10 return html_text
(3 创建interpreting_data()方法,在该方法中首先需要在HTML代码中提取热搜排名、热搜标题、热搜关键词以及热搜标题对应的地址,然后进行热搜关键词为空时的处理并打印爬取的热搜数据。代码如下
11 # 解析响应结果中的数据
12 def interpreting_data(html_text):
13 # 提取热搜排名
14 ranking_all = re.findall('<span class="title-content-index c-index-single c-index-single-hot.*?">(.*?)</span>',html_text)
15 # 提取热搜标题
16 title_all = re.findall('<span>(.*?)</span>',html_text)
17 # 提取热搜关键词
18 keyword_all = re.findall('<span class="title-content-mark c-text c-gap-left-small .*?">(.*?)</span>',html_text)
19 # 提取热搜标题对应的地址
20 href_all = re.findall('<a class="title-content c-link c-font-medium c-line-clamp1" href="(.*?)"',html_text)
21 for r,t,k,h in zip(ranking_all,title_all,keyword_all,href_all):
22 if k =='': # 如果热搜关键词为空
23 print('排名 '+r,'热搜标题 '+t,'关键词 无','地址 '+h)
24 else:
25 print('排名 ' + r, '热搜标题 ' + t, '关键词 '+k, '地址 ' + h)
26 print() # 打印空行
(4 创建程序入口,然后设置百度首页的请求地址与请求头信息,然后调用send_request()与interpreting_data()方法启动网络爬虫程序。代码如下
27 if __name__ == '__main__':
28 url = 'https://www.baidu.com/' # 请求地址
29 # 定义请求头信息
30 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'}
31 html_text = send_request(url=url,headers=headers) # 调用自定义发送网络请求的方法
32 interpreting_data(html_text=html_text) # 调用解析响应结果的方法
(5 爬虫程序运行结果如图3所示。
图3 爬取百度首页热搜信息
更多Python爬虫相关技术,推荐学习《Python网络爬虫从入门到实践》。全彩印刷,书中包括125个快速示例,2个综合案例,1个商业项目,3张爬虫专属魔卡(电子版 ,源码,电子书,技术答疑等。现在购买,还享受每满100减50哦
【点击上图,进入图书详情页面】
↓点击“ ”
逛更多全彩好书
Powered by 小羊羔外链网 8.3.11
©2015 - 2024 小羊羔外链网
您的IP:3.145.47.253,2024-04-24 08:46:55,Processed in 0.05267 second(s).