比较全面的百度百科爬虫

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

课题需要,写了一个百度百科的爬虫,暂时不能全面获取页面的内容,但是相比网上的大部分爬虫已经比较全面了,以“尼米兹级航空母舰”为例,可以获取的内容包含以下几个部分:
在这里插入图片描述
在这里插入图片描述
用红色方框框出来的部分,包括:词条名称、描述、基本信息、第二级标题、正文描述。
本人的爬虫使用beautifulsoup4解析网页,一共分为三步

  1. 下载页面,伪造header,通过Py自带的request工具打开网页,设置10秒超时;
  2. 搜索关键词,关键词一般是中文,放到url中需要用Py自带的quote工具编码,默认第一条结果就是目标词条,根据标签<a class=result-title href=…>获取到词条的链接。
  3. 获取词条内容,根据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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值