python 百度百科 爬虫_python简单爬虫

爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2、BeautifulSoup实现简单爬虫,scrapy也有实现过。最近想更好的学习爬虫,那么就尽可能的做记录吧。这篇博客就我今天的一个学习过程写写吧。

一 正则表达式

正则表达式是一个很强大的工具了,众多的语法规则,我在爬虫中常用的有:

.

匹配任意字符(换行符除外)

*

匹配前一个字符0或无限次

?

匹配前一个字符0或1次

.*

贪心算法

.*?

非贪心算法

(.*?)

将匹配到的括号中的结果输出

\d

匹配数字

re.S

使得.可以匹配换行符

常用的方法有:find_all(),search(),sub()

对以上语法方法做以练习,代码见:https://github.com/Ben0825/Crawler/blob/master/re_test.py

二 urllib和urllib2

urllib和urllib2库是学习Python爬虫最基本的库,利用该库,我们可以得到网页的内容,同时,可以结合正则对这些内容提取分析,得到真正想要的结果。

在此将urllib和urllib2结合正则爬取了糗事百科中的作者点赞数内容。

代码见:https://github.com/Ben0825/Crawler/blob/master/qiubai_test.py

三 BeautifulSoup

BeautifulSoup是Python的一个库,最主要的功能是从网页抓取数据,官方介绍是这样的:

Beautiful Soup 提供一些简单的、python 式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。

Beautiful Soup 自动将输入文档转换为 Unicode 编码,输出文档转换为 utf-8 编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup 就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。

Beautiful Soup 已成为和 lxml、html6lib 一样出色的 python 解释器,为用户灵活地提供不同的解析策略或强劲的速度。

首先:爬取百度百科Python词条下相关的100个页面,爬取的页面值自己设定。

代码详见:https://github.com/Ben0825/Crawler/tree/master/python_baike_Spider

代码运行:

771535-20160322005150776-1877023342.png

771535-20160322005352620-1816950888.png

巩固篇,依据豆瓣中图书的标签得到一个书单,同样使用BeautifulSoup。

代码详见:https://github.com/Ben0825/Crawler/blob/master/doubanTag.py

运行结果:

771535-20160322005724261-1297428935.png

以上就是今天学习的一些内容,爬虫真的很有意思啊,明天继续学scrapy!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

知乎上这个程序员火了,竟是因为给老板修了一 次U盘

全世界只有3.14 % 的人关注了爆炸吧知识相信很多小伙伴曾经遇到这样的问题软件工程▼知识君陷入沉思都说知乎出人才,于是知识君飞赴知乎希望能得到广大网友的点拨!知乎上有位朋友就分享了他的经验做为一名全栈程序员居然要我修电脑。你以为我会和领导说告…

mysql 批量_mysql LOAD语句批量录入数据

本章的前面讨论如何使用SQL向一个表中插入数据。但是,如果你需要向一个表中添加许多条记录,使用SQL语句输入数据是很不方便的。幸运的是,MySQL提供了一些方法用于批量录入数据,使得向表中添加数据变得容易了。本节以及下一节&…

VS2010 NDoc的插件工具

1、下载Sandcastle Help File Builder: http://www.codeplex.com/SHFB 2、下载sandcastle: http://www.microsoft.com/downloads/details.aspx?FamilyIDe82ea71d-da89-42ee-a715-696e3a4873b2&DisplayLangen 1、先安装sandcastle,然后安…

回到校园

最近一段时间,作息时间调整的原因,有了周六,周日。今天是星期六,下午没有什么事情,就带了本书,重新回到毕业5年的大学,又去上了一节自习!上学的感觉很好呀~~~转载于:https://blog.51…

Abel 分部求和法

本文之所以叫Abel分部求和法而不叫Abel分部求和公式,是因为求和公式有可能形式上有所不同,但是方法确实相同的。 $$\sum_{nM}^{N}a_{n}b_{n} \sum_{nM}^{N} a_{n}B_{n}-\sum_{nM}^{N}a_{n}B_{n-1}$$ 而 $$\sum_{nM}^{N}a_{n}B_{n-1}\sum_{M-1}^{N-1}a_{…

使用Pitcher简化卫语句

什么是卫语句在方法的开头,我们经常会添加一些检查代码,当检查条件为true时立刻从方法中返回。这样的单独检查代码被称为“卫语句”。例如,我们在添加用户时会检查用户名不能为空,年龄必须大于0:public void AddUser(s…

男人的本质需求

1 新的一天也要保持微笑哦2 别拍了!快救我!3 被可爱到了4 通过薯条学习骨折的分类。从左向右依次是:螺旋骨折、斜向骨折、横向骨折、多段骨折和粉碎性骨折。5 高级玩家啊~6 男人的本质需求你点的每个赞,我都认真当成了喜欢

python小甲鱼爬虫妹子_【Python学习日记】B站小甲鱼:爬虫

Web Spider Python 如何访问互联网 URL lib -->urllib URL的一般格式为 protocol://hostname[:port] / /path /[;parameters][?query]#fragment,其中[]为可选项 URL由三部分组成 第一部分是协议 第二部分是存放资源的服务器的域名系统或IP地址(有时…

【转】了解SQL Server触发器及触发器中的事务

引述 首先, 说下我写篇文章的目的,我希望能把我对触发器的理解,分享出来与你一起学习。如果你有对触发器和事务的概念,有些了解,这篇文章,对你来说会是很简单,或能让你更进一步的了解触发器里面…

Java将mysql输出csv_使用Java将大量数据从数据库导出到.csv时出...

我,谢谢您的关注.我想使用Java将大量数据,实际上是大量数据(600万行)导出到.csv文件.该应用程序是使用toplink(ojdbc14)的JPA摆动应用程序.我尝试使用:但是BufferedWriterRandomAccessFile的FileChannel等等,但是尽管我将最大堆大小设置为800m(-Xmx800m),但是内存消…

Oracle interview

Oracle Applications General Questions How can you restrict the access (to oracle apps) to A GROUP OF users using personalization?How do you enable trace/debug in APPS?What are custom events in apps and how to you enable/disable it?What is diagnostics in…

ASP.Net Core Web API 如何返回 File。

咨询区 Jan Kruse&#xff1a;我想在 ASP.Net Web API 中返回 File 文件&#xff0c;我目前的做法是将 Action 返回值设为 HttpResponseMessage&#xff0c;参考代码如下&#xff1a;public async Task<HttpResponseMessage> DownloadAsync(string id) {var response ne…

python导包路径问题_python的导包问题

有事会遇到在python代码中导入包错误问题&#xff0c;本文简单对python包的引入做简单介绍 简单说,我认为python导包一共有3种情况,分别是: 要导的包与当前文件在同一层 要导的包在当前文件的底层(就是与当前文件夹同级的文件夹里) 要导的包在当前文件的上层 1、要导的包与当前…

垃圾代码还能出圈?手把手教你写垃圾代码,从入门到精通!

全世界只有3.14 % 的人关注了爆炸吧知识转自&#xff1a;机器之心参与&#xff1a;思如果说到什么是好代码&#xff0c;我们肯定都能说出一堆规则&#xff0c;例如使用一致的格式和缩进、使用清晰的变量名和方法名、在必要时提供文档与注释、不要过度精简代码等等。但是对于什么…

winform能连MySQL吗_c# winform中怎么连接mysql

匿名用户1级2018-11-19 回答static string myConnstr "serverip;user idroot; passwordpasswd;databasedb;poolingfalse;charsetgbk;";//System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls false;public static MySqlConnection GetMyConnection(){My…

User Experience Kit

User Experience Kit&#xff08;UEK&#xff09; 是微软官方发布的&#xff0c;集成了有关如何使用 Silverlight 3, Silverlight 4 实现有关媒体发布、数字化营销、以及使用 Silverlight 构建客户端的最新案例、白皮书以及部分源码。从这里下载 UEK 的概览. 网站地址&#xff…

java以Blob形式存储,读取图片并在jsp页面显示图片流

2019独角兽企业重金招聘Python工程师标准>>> 废话少说代码伺候&#xff1a; 封装好的ImageUtil类&#xff1a;目的读取本地的图片文件并存入数据库&#xff0c;然后读出数据库中以Blob形式存储的图片保存到指定目录。 1 package org.blog.util; 2 import java.io.F…

“ShardingCore”是如何针对分表下的分页进行优化的

首先还是要给自己的开原框架打个广告 sharding-core 针对efcore 2版本的分表组件&#xff0c;首先我们来快速回顾下目前市面上分表下针对分页常见的集中解决方案分表解决方案解决方案skip<100skip<10000skip>10000优点缺点内存分表速度快O(n)&#xff0c;nskip*分表数…

docker pull 私有_【赵强老师】管理Docker镜像

一、什么是Docker的镜像Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的Linux机器上&#xff0c;也可以实现虚拟化&#xff0c;容器是完全使用沙箱机制&#xff0c;相互之间不会有任何…

看着女朋友的肚子,以肉眼可见的速度大起来......

1 女生的肚子有多神奇▼2 你的论文除了导师真没人想要▼3 脑子&#xff1a;各部门注意&#xff01;这次一定可以&#xff01;手&#xff1a;&#xff1f;&#xff1f;&#xff1f;▼4 这孩子可能是高估了自己的大长腿▼5 到处说前男友死了算违法吗&#xff1f;▼6 男人妖…