目标:爬取“湖南大学”百科词条并处理数据

需要获取的数据:

源代码:

<div class="basic-info cmn-clearfix">
<dl class="basicInfo-block basicInfo-left">
<dt class="basicInfo-item name">中文名</dt>
<dd class="basicInfo-item value">
湖南大学
</dd>
<dt class="basicInfo-item name">外文名</dt>
<dd class="basicInfo-item value">
Hunan University
</dd>
<dt class="basicInfo-item name">简&nbsp;&nbsp;&nbsp;&nbsp;称</dt>
<dd class="basicInfo-item value">
<a target="_blank" href="/item/%E6%B9%96%E5%A4%A7/406102" data-lemmaid="406102">湖大</a>·<a target="_blank" href="/item/HNU">HNU</a>
</dd>
<dt class="basicInfo-item name">创办时间</dt>
<dd class="basicInfo-item value">
1903年
</dd>
<dt class="basicInfo-item name">类&nbsp;&nbsp;&nbsp;&nbsp;别</dt>
<dd class="basicInfo-item value">
公立大学
</dd>
<dt class="basicInfo-item name">类&nbsp;&nbsp;&nbsp;&nbsp;型</dt>
<dd class="basicInfo-item value">
综合类<a target="_blank" href="/item/%E7%A0%94%E7%A9%B6%E5%9E%8B%E5%A4%A7%E5%AD%A6">研究型大学</a>
</dd>
.......
<dd class="basicInfo-item value">
<a target="_blank" href="/item/%E9%92%9F%E5%BF%97%E5%8D%8E">钟志华</a>、<a target="_blank" href="/item/%E8%B0%AD%E8%94%9A%E6%B3%93">谭蔚泓</a>、<a target="_blank" href="/item/%E4%BD%95%E4%BA%BA%E5%8F%AF">何人可</a>、<a target="_blank" href="/item/%E7%86%8A%E6%99%93%E9%B8%BD">熊晓鸽</a>、<a target="_blank" href="/item/%E8%92%8B%E8%B6%85%E8%89%AF">蒋超良</a>、<a target="_blank" href="/item/%E9%82%93%E9%A3%9E/1525913" data-lemmaid="1525913">邓飞</a>、<a target="_blank" href="/item/%E8%B0%AD%E8%80%95">谭耕</a>等
</dd>
</dl></div>

库:由于百度有反爬机制,所以使用urllib.request库获取网页;BeautifulSoup

代码:

from bs4 import BeautifulSoup
import urllib.request url = "https://baike.baidu.com/item/%E6%B9%96%E5%8D%97%E5%A4%A7%E5%AD%A6/179157?fr=aladdin"
response = urllib.request.urlopen(url) # 访问并打开url
html = response.read() # 创建html对象读取页面源代码 soup = BeautifulSoup(html, 'html.parser') # 创建soup对象,获取html代码 title = soup.find_all('dt', class_="basicInfo-item name") # 找到所有dt标签,返回一个列表
node = soup.find_all('dd', class_="basicInfo-item value") # 找到所有dd标签,返回一个列表 allunivinfo = []
titlelist = []
infolist = [] for i in title: # 将所有dt标签内容存入列表
title = i.get_text()
titlelist.append(title)
for i in node: # 将所有dd标签内容存入列表
info = i.get_text()
infolist.append(info)
for i, j in zip(titlelist, infolist): # 多遍历循环,zip()接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。
info = ''.join((str(i)+':'+str(j)).split())
allunivinfo.append(info)
print(allunivinfo)

运行结果:

python简单爬虫 用beautifulsoup爬取百度百科词条的更多相关文章

  1. <爬虫>利用BeautifulSoup爬取百度百科虚拟人物资料存入Mysql数据库

    网页情况: 代码: import requests from requests.exceptions import RequestException from bs4 import Beautiful ...

  2. java 如何爬取百度百科词条内容(java如何使用webmagic爬取百度词条)

    这是老师所布置的作业 说一下我这里的爬去并非能把百度词条上的内容一字不漏的取下来(而是它分享链接的一个主要内容概括...)(他的主要内容我爬不到 也不想去研究大家有好办法可以call me) 例如 互 ...

  3. R语言爬虫:爬取百度百科词条

    抓取目标:抓取花儿与少年的百度百科中成员信息 url <- "http://baike.baidu.com/item/%E8%8A%B1%E5%84%BF%E4%B8%8E%E5%B0 ...

  4. 从0开始学爬虫8使用requests/pymysql和beautifulsoup4爬取维基百科词条链接并存入数据库

    从0开始学爬虫8使用requests和beautifulsoup4爬取维基百科词条链接并存入数据库 Python使用requests和beautifulsoup4爬取维基百科词条链接并存入数据库 参考 ...

  5. Python开发简单爬虫(二)---爬取百度百科页面数据

    一.开发爬虫的步骤 1.确定目标抓取策略: 打开目标页面,通过右键审查元素确定网页的url格式.数据格式.和网页编码形式. ①先看url的格式, F12观察一下链接的形式;② 再看目标文本信息的标签格 ...

  6. 爬虫实战(一) 用Python爬取百度百科

    最近博主遇到这样一个需求:当用户输入一个词语时,返回这个词语的解释 我的第一个想法是做一个数据库,把常用的词语和词语的解释放到数据库里面,当用户查询时直接读取数据库结果 但是自己又没有心思做这样一个数 ...

  7. Python爬虫实战之爬取百度贴吧帖子

    大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的任意帖子进行抓取 指定是否只抓取楼主发帖 ...

  8. Python——爬取百度百科关键词1000个相关网页

    Python简单爬虫——爬取百度百科关键词1000个相关网页——标题和简介 网站爬虫由浅入深:慢慢来 分析: 链接的URL分析: 数据格式: 爬虫基本架构模型: 本爬虫架构: 源代码: # codin ...

  9. 【学习笔记】Python 3.6模拟输入并爬取百度前10页密切相关链接

    [学习笔记]Python 3.6模拟输入并爬取百度前10页密切相关链接 问题描述 通过模拟网页,实现百度搜索关键词,然后获得网页中链接的文本,与准备的文本进行比较,如果有相似之处则代表相关链接. me ...

随机推荐

  1. Python VisibleDeprecationWarning: converting an array with ndim > 0 to an index will result in an error in the future

    问题原因:nd.array值直接用做数组索引,索引一般需为整数,可能带来风险,比如浮点数作为索引 解决方案:把nd.array值强制转成int peakIdx = int( np.asarray(pe ...

  2. 那些按烂的Linux命令集合贴

    #查看80端口运行情况netstat -anp|grep 80 #关闭某个进程(如8848pid) kill -9 8848 #运行java的war包 java -jar myproj.war #持续 ...

  3. CAS工程用redis集群存储票据ticket Spring整合

    maven jar包版本: <dependency> <groupId>redis.clients</groupId> <artifactId>jedi ...

  4. C# 批量新增的两种方法。

    public class Test { private static readonly string strConnection = ""; public static void ...

  5. Hadoop之搭建完全分布式运行模式

    一.过程分析 1.准备3台客户机(关闭防火墙.修改静态ip.主机名称) 2.安装JDK 3.配置环境变量 4.安装Hadoop 5.配置集群 6.单点启动 7.配置ssh免密登录 8.群起并测试集群 ...

  6. winform使用log4.net

    因为我最近负责的Winform项目,好多都用到了这个log4net的日志功能,开发程序对数据一般都要求做到雁过留痕,所以日志对于我们程序员是不可或缺.因此我把对log4net的使用做一个记录总结,以便 ...

  7. Python自学:第三章 使用方法sort( )对列表进行永久性排序

    cars = ["bmw", "audi", "toyota", "subaru"] cars.sort() print ...

  8. pycharm配置可视化数据库

    出于数据库安全性,数据库管理员会给数据库配置SSH,也就是为数据库增加一个安全协议(通信加密),加大外部用户对该数据库远程连接的难度. 利用SSH通道来连接远程数据库时需要以下信息:远程数据库服务器I ...

  9. 8.3 GOF设计模式二: 适配器模式 Adapter

    GOF设计模式二: 适配器模式 Adapter  为中国市场生产的电器,到了美国,需要有一个转接器才能使用墙上的插座,这个转接 器的功能.原理?复习单实例模式  SingleTon的三个关键点  ...

  10. 菜鸡学C语言之真心话大冒险

    题目描述 Leslie非常喜欢真心话大冒险的游戏.这一次游戏的规则有些不同.每个人都有自己的真心话,一开始每个人也都只知道自己的真心话.每一轮每个人都告诉指定的一个人他所知道的所有真心话,那么Lesl ...