课题需要,写了一个百度百科的爬虫,暂时不能全面获取页面的内容,但是相比网上的大部分爬虫已经比较全面了,以“尼米兹级航空母舰”为例,可以获取的内容包含以下几个部分:


用红色方框框出来的部分,包括:词条名称、描述、基本信息、第二级标题、正文描述。
本人的爬虫使用beautifulsoup4解析网页,一共分为三步
- 下载页面,伪造header,通过Py自带的request工具打开网页,设置10秒超时;
- 搜索关键词,关键词一般是中文,放到url中需要用Py自带的quote工具编码,默认第一条结果就是目标词条,根据标签<a class=result-title href=…>获取到词条的链接。
- 获取词条内容,根据html标签逐一读取内容,将需要的信息存储到list中,奇数行是属性名,偶数行是属性值,最终存储到本地的txt文件中保存,存储到本体的代码没有放出来。第二张图的大段文本是一个难点,文本的上一级标题可能是h2也可能是h3,暂时没有想到好的方法同时保留两种标题,目前的方法去掉了h3的标题。有兴趣的朋友可以试试有没有好的方法,
#coding=utf8
import re
import string
import urllib.request
from urllib.parse import quote
from bs4 import BeautifulSoup
#下载网页内容
def download(url):
if url is None:
return None
headers = {
'User-Agent': 'Mozilla/5.0 (Mac

为课题需求,作者编写了一个能较全面抓取百度百科内容的爬虫,虽然无法获取全部页面信息,但已超越大部分公开爬虫。以‘尼米兹级航空母舰’为例,能获取词条名称、描述、基本信息、二级标题和正文描述。爬虫使用BeautifulSoup4解析,主要步骤包括:伪装头信息下载页面、搜索关键词并获取目标词条链接、解析HTML获取内容并存储到本地。当前难点在于处理不同层级的标题,特别是h3标签。未来计划完善爬虫,抓取更多信息。
最低0.47元/天 解锁文章
2006

被折叠的 条评论
为什么被折叠?



