打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第2关

http://books.toscrape.com/

第一个小练习,我们要把这网站左侧的各种书籍的分类给提取出来

来,开始。第一步,最便捷的方式,右键点击第一个分类“Travel”,然后选择“检查”

检查会被打开,并且自动定位到element里面的标签位置

简单看一下右边的标签情况,很多<li>标签中,打开的是第一个<li>标签

<li>标签下又是一个<a>标签,那我们把这个<a>标签展开看一看

嗯,没错。Travel这个分类的文本内容就在这个标签下。接着我们继续多看一下几个<li>标签,会发现,每个<li>标签下都是一个分类的文本

那大概的思路是不是有啦?

同学可能会这么想:定位到<li>标签,爬它!

等等等等,别着急

真的以为定位到<li>标签就好了?

再检查一下吧,用ctrl+F搜索一下<li>标签

结果如下

搜出来的第一个<li>标签,不是我们需要的内容。这说明,如果直接定位到<li>标签是不准确的

所以我们还是一步步来定位,不用要求一步到位哦

这里需要提取好几层呢,耐心一点,精准一点

最后,我们可以把程序写出这个样子

自动检测
import requests
from bs4 import BeautifulSoup


res_bookstore = requests.get('http://books.toscrape.com/')
bs_bookstore = BeautifulSoup(res_bookstore.text,'html.parser')
list_kind = bs_bookstore.find('ul',class_='nav').find('ul').find_all('li') # 这里需要提取好几层


for tag_kind in list_kind:
    tag_name = tag_kind.find('a')
    print(tag_name.text.strip()) # 去除特殊字符串,比如空格,\n,\t等等

这里有三处需要注意:

1、第7行,这里是把所有的标签定位连写,同学们在自己练习的时候,可以分开一步步来写;

2、第7行,最后用的find_all(‘li’)是把所有<li>标签爬取下来,得到的是一个列表;

3、第12行,tag_name.text是提取出<a>标签的文本部分,.strip() 是将文本部分的特殊字符切除,同学们在练习的时候,可以把这个去掉和加上,看看两者的区别是什么;

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
看小说,还嫌广告多?那就一起学爬虫吧
BeautifulSoup基本用法总结
一文弄清Python网络爬虫解析库!内含多个实例讲解
智能营销总部:Python 爬虫从入门到进阶之路(十二)
网易云音乐歌单
用Dreamweaver 创造网页鼠标样式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服