以获取到“淘宝网->主题市场”的文本内容为例。

1、对网页源代码进行分析(前期准备工作)
打开“淘宝网”,按快捷键“F12”打开网页源代码,用元素选择键(下图蓝框标出)选择“主题市场”模块,跳转到该模块相关代码。
在这里插入图片描述
可以看到,“主题市场”模块(上图左侧红框)的源代码(上图右侧红框)为一个<ul>标签。而该<ul>标签下含有多个<li>标签,每个<li>标签对应着“主题市场”模块内的一行内容。
在这里插入图片描述
点开一个<li>标签,可以看到,下方内含多个<a>标签(上图右侧红框),而每个<a>标签中的文本内容(上图右侧红标)正是我们当前所需要获取的信息。

基于如上的分析,可以得出获取“主题市场”模块文本内容的流程。
第一步:获取到对应“主题市场”模块的<ul>标签;
第二步:获取到上述<ul>标签下的所有<li>标签;
第三步:遍历上述取出的每个<li>标签,取出所需信息(第一层循环);
第四步:获取到上述每个<li>标签下所有<a>标签;
第五步:遍历上述取出的每个<a>标签,取出所需信息(第二层循环)。

2、根据流程编写代码

 #引入requests库
import requests
#引入BeautifulSoup库
from bs4 import BeautifulSoup

#为躲避反爬机制,伪装成浏览器的请求头
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
#获取数据
res = requests.get('https://www.taobao.com/',header=headers) 
#解析数据(*重点*)
soup = BeautifulSoup(res.text,'html.parser')

#以下步骤开始查找网页相关标签,获取相关数据

#第一步:获取到类名为service-bd的<ul>标签,注意类名标识为class_
tag_ul = soup.find('ul',class_='service-bd')

#第二步:获取到该<ul>标签下的所有<li>标签,注意find()和find_all()的区别
tag_li_s = tag_ul.find_all('li')

#第三步:循环取出每一个获取到的<li>标签
for tag_li in tag_li_s:
    #输出该个<li>标签的'data-groupid'的属性值
    print(tag_li['data-groupid'],end="  ")

    #第四步:获取到该个<li>标签下的所有<a>标签
    tag_a_s = tag_li.find_all('a')

    #第五步:循环取出每一个获取到的<a>标签
    for tag_a in tag_a_s:
        #输出该个<a>标签下的文本信息
        print(tag_a.text,end=" / ")
        
    print("\n")

在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐