本期为python爬虫实践的第七节,传送门:

Python爬虫实践(1)--大数据时代的数据挑战

Python爬虫实践(2)--非结构化数据与爬虫

Python爬虫实践(3)--了解网络爬虫背后的秘密

Python爬虫实践(4)--编写第一个网络爬虫程序

Python爬虫实践(5)--使用BeautifulSoup解析网页元素

Python爬虫实践(6)--BeautifulSoup的基础操作

经过前面6期的讲解,相信大家对于python爬虫有了一定程度的了解。本期我们就用python爬虫去做一个小案例,去爬取菜鸟教程网站上的python3学习路线。

python

我们先来看一下菜鸟教程网站上python3的教程页面,在左侧有竖着的一列导航,这就是我们要抓取的信息。我按F12打开开发者工具,分析网页的html代码,看一看,我们想要提取的信息都在哪些标签中,这些标签都有什么特殊的地方。

菜鸟教程python3

开发者工具分析页面

通过分析页面,我们可以知道,整个左侧的列表被包裹在一个ID为leftcolumn的div中。在这个div中有非常多的a标签,每一个a标签包含一个python的学习内容。OK,有了这些分析结果,我们就可以开始编写python代码。

import requests

from bs4 import BeautifulSoup

res = requests.get('http://www.runoob/python3/python3-tutorial.html')

res.encoding = 'utf-8'

soup = BeautifulSoup(res.text, 'html.parser')

leftcolumn = soup.select('#leftcolumn')

pt = leftcolumn[0]

for title in pt.select('a'):

print(title.text.strip())

代码分析:我们根据ID获取了包含所有python知识点的DIV存放在变量leftcolumn中,因为变量leftcolumn是一个列表,而且这个列表中有且只有一个元素,所以我们通过leftcolumn[0]取出赋值给pt这个变量,随后我们通过for循环,在pt变量中继续查找a标签,并将a标签的文本输出,因为输出结果中有多余的空格出现,故使用了strip()方法将多余的空格去掉,最后我们查看一下输出结果。

输出结果

更多推荐

python网页爬虫菜鸟教程_Python爬虫实践(7)-抓取菜鸟教程python学习路线-工具-站长头条...