下面是“urllib和BeautifulSoup爬取维基百科的词条简单实例”的完整攻略。
1. 准备工作
在开始爬取维基百科的内容之前,我们需要做一些准备工作。
首先需要安装BeautifulSoup
和urllib
库,可以通过以下命令安装:
pip install beautifulsoup4
pip install urllib
接下来,我们需要了解维基百科页面的结构。维基百科的每个页面的HTML结构都是相同的,页面的主要内容都存放在<div>
标签中的<p>
标签内。
2. 简单实例
现在我们来看一个简单的例子,爬取维基百科上Python词条的第一段内容。
from urllib import request
from bs4 import BeautifulSoup
# 爬取维基百科上Python词条的第一段内容
url = 'https://zh.wikipedia.org/wiki/Python'
response = request.urlopen(url)
html = response.read()
soup = BeautifulSoup(html, 'html.parser')
content = soup.find('div', class_='mw-parser-output').find_all('p')[0].text
# 输出结果
print(content)
解释一下代码:
- 首先,我们使用
urllib
库的urlopen()
方法打开Python词条的页面,将返回的字节数据赋值给response
变量中。 - 然后,使用
BeautifulSoup
库中的BeautifulSoup()
方法解析页面数据,并将解析结果赋值给soup
变量中。 - 接下来,使用
soup.find()
方法找到页面中<div>
标签中class
属性值为"mw-parser-output"
的元素,并使用find_all()
方法找到其中所有的<p>
标签。 - 最后,获取第一个
<p>
标签的文本内容并保存在content
变量里。
运行代码后,可以看到输出的结果是Python词条的第一段文字。
3. 进一步优化
上面的代码只获取了第一段内容,如果需要获取更多内容,需要逐一在<div>
标签中查找<p>
标签内容。这样比较繁琐,可以通过更高级的BeautifulSoup
方法实现。
from urllib import request
from bs4 import BeautifulSoup
# 爬取维基百科上Python词条的所有内容
url = 'https://zh.wikipedia.org/wiki/Python'
response = request.urlopen(url)
html = response.read()
soup = BeautifulSoup(html, 'html.parser')
content = soup.find('div', class_='mw-parser-output').text
# 输出结果
print(content)
解释一下代码:
- 与上面的代码一样,先使用
urllib
库打开词条页面,并使用BeautifulSoup
库解析页面数据。 - 然后,使用
soup.find()
方法找到页面中<div>
标签中class
属性值为"mw-parser-output"
的元素,并使用text
属性获取其中所有子元素的文本内容。
运行代码后,可以看到输出所有文本内容。
这样,我们就完成了“urllib和BeautifulSoup爬取维基百科的词条简单实例”的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:urllib和BeautifulSoup爬取维基百科的词条简单实例 - Python技术站