几个Python爬虫工具介绍
Request
Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用
上面一句话 出自Requests官方文档的第一句,从而奠定了其逗逼的文档风格。类似的还有:
警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。
Request是一个基于urllib3的Python的Http库。这里就可以看出它的存在是为了取代urllib、urllib2等Http工具的江湖地位的,事实上确实如此,相对于前两者来说它是更高级的工具。比如urllib和urllib2配合使用的时候我们需要手动地用urlencode为POST表单数据编码或者手动为GET方式添加url的查询字符串,使用requests就不需要考虑这种问题。还有keep-alive和Http连接池的功能都是全自动化的。
它的官方文档简单明了,在这里可以找到
Beautiful Soup
当我学习用正则表达式抓取网页内容的时候,就在想这种对着每个页面反反复复的盯着看,都要长鸡眼了,就是为了写一个正则表达式,是不是效率太低也太容易出错了。Beautiful Soup这种工具很明显就是为了解决我的这种疑惑的。
它是一个用于从HTML和XML文档中提取数据的Python库,可以实现文档的导航、查找、修改,让我们从繁琐、低效、易错的正则表达式中解脱出来。它把HTML这种基于标签的文档组织成树的结构,方便我们用面向对象的方式获取内容。目前最新的是beautifulsoup4。
我的系统是Ubuntu16.04,安装Beautiful Soup:
sudo pip install beautifulsoup4
Beautiful Soup有中文版的文档,在这里
Beautiful Soup是一个获取文档内容的高层的封装,它是支持多种解析器的,默认的是Python标准库中的HTMLParser。第三方解析器支持lxml和html5lib,不同的解析器有各自的特点,官方文档中做出了对比的表格。在用html文档构造beautifulsoup对象的时候,可以指定解析器来解析文档:
from bs4 import BeautifulSoup
soup = BeautifulSoup(open("index.html"), "html.parser")
如果不指定而系统中又有多种解析器的话,系统会选择最合适的解析器来解析文档。
BeautifulSoup把HTML的每个节点都转换成Python对象,这些对象分为Tag , NavigableString , BeautifulSoup , Comment四个种类。
Tag:也就是xml或者HTML中的标签
NavigableString:称为“可以遍历的字符串”
Beautiful
测试网站:http://httpbin.org/
这是一个专门用于测试Http请求和相应的网站。在学习各种工具和方法的时候做实验尝试和验证是必不可少的环节,这种时候这个网站就排上了用场。它支持各种HTTP的场景,请求的响应内容都是以json编码的。例如:
$ curl http://httpbin.org/ip
{"origin": "24.127.96.129"}
事实上,Requests的官网就是是它来讲解的例子。
几个Python爬虫工具介绍的更多相关文章
- python爬虫工具集合
python爬虫工具集合 大家一起来整理吧!强烈建议PR.这是初稿,总是有很多问题,而且考虑不全面,希望大家支持! 源文件 主要针对python3 常用库 urllib Urllib是python提供 ...
- 常见Python爬虫工具总结
常见Python爬虫工具总结 前言 以前写爬虫都是用requests包,虽然很好用,不过还是要封装一些header啊什么的,也没有用过无头浏览器,今天偶然接触了一下. 原因是在处理一个错误的时候,用到 ...
- python爬虫工具
一直都听说python写爬虫工具非常方便,为了获取数据,我也要写点爬虫,但是python太灵活了,不知道python爬虫要哪些框架,要了解,比如beatiful soup,scrapy, 爬虫的额主要 ...
- Python 爬虫工具 —— fake_useragent
服务器为避免爬虫工具无休止的请求,以减轻负载,会对 user agent 进行校验,即判断某一 user-agent 是否不断地进行请求.可采用如下方式进行绕过服务器的校验. UserAgent_Li ...
- 一个python爬虫工具类
写了一个爬虫工具类. # -*- coding: utf-8 -*- # @Time : 2018/8/7 16:29 # @Author : cxa # @File : utils.py # @So ...
- [python] 基础工具介绍好文推荐
Github上有个哥们写的,还不错,mark一下: https://github.com/lijin-THU/notes-python/blob/master/index.ipynb 相对全面的介绍了 ...
- Python爬虫简单介绍
相关环境: Python3 requests库 BeautifulSoup库 一.requests库简单使用 简单获取一个网页的源代码: import requests sessions = requ ...
- Python爬虫和情感分析简介
摘要 这篇短文的目的是分享我这几天里从头开始学习Python爬虫技术的经验,并展示对爬取的文本进行情感分析(文本分类)的一些挖掘结果. 不同于其他专注爬虫技术的介绍,这里首先阐述爬取网络数据动机,接着 ...
- python爬虫工程师各个阶段需要掌握的技能和知识介绍
本文主要介绍,想做一个python爬虫工程师,或者也可以说是,如何从零开始,从初级到高级,一步一步,需要掌握哪些知识和技能. 初级爬虫工程师: Web前端的知识:HTML, CSS, JavaScri ...
随机推荐
- 分布式ID系列(2)——UUID适合做分布式ID吗
UUID的生成策略: UUID的方式能生成一串唯一随机32位长度数据,它是无序的一串数据,按照开放软件基金会(OSF)制定的标准计算,UUID的生成用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能 ...
- 用lilypond实现模进
基本练习通常是一个两个简单动作在不同位置上反复操练,所以打谱的时候用模进必不可少. 所谓模进,就是把一个片段平行地转移到其他音高上进行.比如 do re mi fa 可以把从do开始改成从so开始,那 ...
- HiveQL DDL 常用QL示例资料
hive-version2.1.1 DDL操作 Create/Drop/Alter/Use Database 创建数据库 //官方指导 CREATE (DATABASE|SCHEMA) [IF NOT ...
- 总结Idea环境,吐血踩过的坑
1)首先是JDK环境安装,这一步千万要出错,我就是配错了CLASSPATH导致了很诡异的问题.可能结果:就是RUN到tomcat不报错,但是有404错误. 2)然后是IDEA安装,这里要十分注意如果你 ...
- .Net Core 最优 MD5 打开方式!初学者建议收藏(支持 SHA1,SHA256,.Net Framework)
public static string GetMd5Hash(string input) { using (MD5 md5Hash = MD5.Create()) { // Convert the ...
- 记一次 Windows MySQL 恢复
0x00 事件 因为本地的服务器硬件出现故障,导致一台 Windows 系统的开发环境挂了,且无法短时间内恢复状态. 应急方案是使用了云上的系统重建了开发环境. 开发人员说需要挂了的那台 Window ...
- 暂停研发surging,是否继续维护!
前言 surging从2017 年开始,2 年来利用业余时间为 surging语言添砖加瓦. 这种活雷锋行为并没有得到开发者们的理解,很多人甚至用命令的口吻,灵魂拷问方式要求活雷锋们再苦再累也得免费为 ...
- Sqlserver 查询把多行内容拼成一个字符串
当使用:SELECT ','+Id FROM dbo.Test FOR XML PATH('')); //这样读取的数据虽然是1,2,3,4,但是仍然是xml格式,所以当数据超过2033时候,用sql ...
- Python 命令行之旅 —— 深入 argparse (一)
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...
- 【redis】redis基础命令学习集合
写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...