利用python写一个爬虫,爬取百度百科的某一个词条下面的全部链接和每一个链接内部的词条主题和摘要。利用request库爬取页面,然后利用BeautifulSoup对爬取到的页面提取url和关键内容。使用一个类来管理url,使爬取到的url不会被重新爬取。遍历url的时候,将每个url指向的html页面爬取下来,提取出感兴趣的文本,保存到文件。最后生成一个某一个词条下面的包含的所有词条和摘要的文件。

用到的Python的库:

1. urllib.request

2.BeautifulSoup

关于urllib.request

urllib.request 是python 3 下面的一个库,不支持python2,(python2的是requests库),本来是想用requests的,但是python的中文编码问题一直没有解决,但好想问题已经找到了,就是抓取到的网页的内容编码是ios-8859-1,但是网页的response头部的编码是utf-8,导致编码不统一,造成乱码。解决方案,在另外的一遍文章讨论。总之就是,用了这个urllib.request库,当然源代码里面也有使用requests库,造成乱码的源码。这是关于乱码的分析的文章http://www.jianshu.com/p/f819ab06a53a。

关于BeautifulSoup

BeautifulSoup是一个神器啊,将抓取到的html,转换为一颗dom树,可以通过很简单的语法,来访问特定的标签和标签下面的属性。而且还支持正则表达式。

源码的思路分析:

源码包括5个文件,main.py , HtmlParse.py,UrlManage.py,html_outputer.py,html_download2.py

main.py 是程序的入口

HtmlParse.py,UrlManage.py,html_outputer.py,html_download2.py 每一个文件对应一个类,他们分别的功能是

UrlManage.py 负责url管理,这个类下面的数据成员是 old_urlset 和new_urlset,分别表示已经爬取的页面,和没有爬取的页面。

html_download2.py 负责将网页下载下来(这里很容易出现下载下来的网页是乱码的问题,以后慢慢讨论这个问题)

HtmlParse.py 负责将爬取下来的网页做分析。利用BeautifulSoup,提取网页的词条主题和里面没包含的url

html_outputer.py 负责将分析之后得到的词条主题写到文件里面。

程序的目录:

输出文件是output.txt, 程序运行结果:

shell的运行结果:

通过main.py 页面里面count 变量设置爬取的页面数,比如100条

源代码链接:

https://github.com/zhaozhengcoder/Spider

参考教程:

廖雪峰的python教程http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

静觅的python教程

http://cuiqingcai.com/category/technique/python

BeautifulSoup官方的文档

requests库的官方文档

python 爬取百度知道,Python 爬虫爬取百度百科网站相关推荐

  1. python爬取微博文本_Python爬虫爬取新浪微博内容示例【基于代理IP】

    本文实例讲述了Python爬虫爬取新浪微博内容.分享给大家供大家参考,具体如下: 用Python编写爬虫,爬取微博大V的微博内容,本文以女神的微博为例(爬新浪m站:https://m.weibo.cn ...

  2. python爬取学校新闻_python爬虫爬取新闻的简单实现

    我们通常是使用爬虫爬取网站信息,其实网络爬虫是一种应用于搜索引擎的程序.使用python爬虫可以将一个网站的所有内容与链接进行阅读.例如我们每日都要获取新闻信息,利用python爬虫就可以帮助我们爬取 ...

  3. python爬取bilibili弹幕_Python爬虫爬取Bilibili弹幕过程解析

    先来思考一个问题,B站一个视频的弹幕最多会有多少? 比较多的会有2000条吧,这么多数据,B站肯定是不会直接把弹幕和这个视频绑在一起的. 也就是说,有一个视频地址为https://www.bilibi ...

  4. python爬图代码实例_Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  5. python爬取豆瓣短评_爬虫-爬取豆瓣短评

    爬虫-爬取豆瓣短评 啥是爬虫? ​按照一定的规则,自动地抓取互联网信息的程序. 为啥要用爬虫? ​可以利用爬虫自动地采集互联网中的信息,采集回来后进行相应的存储或处理,在需要检索某些信息的时候,只需在 ...

  6. python爬取率_Python实现爬虫爬取NBA数据功能示例

    本文实例讲述了Python实现爬虫爬取NBA数据功能.分享给大家供大家参考,具体如下: 爬取的网站为:stat-nba.com,这里爬取的是NBA2016-2017赛季常规赛至2017年1月7日的数据 ...

  7. python爬取数据步骤_Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

  8. python爬虫爬取股票软件数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转载)...

    完整代码 实际上,整个事情完成了两个相对独立的过程:1.爬虫获取网页股票数据并保存到本地文件:2.将本地文件数据储存到MySQL数据库.并没有直接的考虑把从网页上抓取到的数据实时(或者通过一个临时文件 ...

  9. python爬虫抓取百度图片_Python爬虫抓取百度的高清摄影图片

    成果预览: 源代码: import requests import re url = 'https://image.baidu.com/search/index' headers = { 'User- ...

  10. 百度贴吧爬虫爬取楼中楼

    贴吧爬虫爬取楼中楼 实现的思路大致如下: 1.打开百度贴吧一个帖子的url https://tieba.baidu.com/p/4796371684 2.按F12-Network-点击楼层中的下一页, ...

最新文章

  1. 关于pyecharts 地图显示添加数据的问题
  2. 网站优化期间有哪些细节需要注意?
  3. Druid.io索引过程分析——时间窗,列存储,LSM树,充分利用内存,concise压缩
  4. 中国科学院空天信息研究院苏州分院面试——总结
  5. python 安装scrapy,openssl opensslv.h错误的解决办法
  6. 2016年程序员如何提高自己的方法有哪些?
  7. 【报告分享】To B企业如何玩转视频号.pdf(附下载链接)
  8. rrdtool源码安装(转)
  9. 春季养生男性常搓九部位补肾又健脑
  10. 自动控制原理1---自动控制原理基本概念
  11. python官方手册-python中文手册
  12. 托业阅读时间怎么安排【zhasite】
  13. 深大计算机与软件学院学生,深圳大学
  14. 数据库查询时报错com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: ‘1.7725000000E10‘ in column ‘17‘ is outs
  15. Hibernate延迟加载-by宋迪
  16. EChat(简易聊天项目)四、模拟强制下线
  17. 微信小程序python token验证_微信小程序登录对接Django后端实现JWT方式验证登录
  18. Algorithm:数学建模大赛(CUMCM/NPMCM)之数学建模(经验/技巧)、流程(模型准备/模型假设/建模/求解/分析/优化/预测/评价)、论文写作(意义/摘要/关键词/问题重述和模型假设/建
  19. HTML5 布局标签
  20. 简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试、 β测试?

热门文章

  1. 视频压缩软件哪个最好,视频压缩最好的软件?
  2. GAN在半监督学习上的应用
  3. CentOS MC服务器搭建教程
  4. 细说vue钩子函数(生命周期函数)
  5. mac系统谷歌浏览器一些问题
  6. python 图片和二进制转换的三种方式
  7. 中国数据复制第一股:英方软件做对了什么?
  8. linux与mysql的关系_linux系统mysql简介
  9. 程序员成长纪——首章
  10. html ajax实现ntlm,从一个AJAX POST获取NTLM挑战只需一页