乐趣区

不会Python的这几个库我都不敢说会爬虫

来源:JAVAandPython 君

☞ 分享:最全最新的 Python 学习大礼包 ☜

很多朋友不知道 Python 爬虫怎么入门,怎么学习,到底要学习哪些内容。今天我来给大家说说学习爬虫,我们必须掌握的一些第三方库。

废话不多说,直接上干货。

请求库

1. requests

GitHub:https://github.com/psf/requests

requests 库应该是现在做爬虫最火最实用的库了,非常的人性化。有关于它的使用我之前也写过一篇文章 一起看看 Python 之 Requests 库,大家可以去看一下。

有关于 requests 最详细的使用方法,大家可以参考官方文档:https://requests.readthedocs….

小案例


>>> import requests
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'disk_usage': 368627, u'private_gists': 484, ...}

2.urllib3

GitHub:https://github.com/urllib3/ur…

urllib3 是一个非常强大的 http 请求库,提供一系列的操作 URL 的功能。

有关于它的详细使用方法可以参考:https://urllib3.readthedocs.i…

使用小案例:


>>> import urllib3
>>> http = urllib3.PoolManager()
>>> r = http.request('GET', 'http://httpbin.org/robots.txt')
>>> r.status
200
>>> r.data
'User-agent: *\nDisallow: /deny\n'

3.selenium

GitHub:https://github.com/SeleniumHQ…

自动化测试工具。一个调用浏览器的 driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。

对于这个库并非只是 Python 才能用,像 JAVA、Python、C# 等都能够使用 selenium 这个库

有关于 Python 语言如何去使用这个库,大家可以去访问 https://seleniumhq.github.io/… 查看官方文档

使用小案例:


from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')

4.aiohttp

GitHub:https://github.com/aio-libs/a…

基于 asyncio 实现的 HTTP 框架。异步操作借助于 async/await 关键字,使用异步库进行数据抓取,可以大大提高效率。

这个属于进阶爬虫时候必须掌握的异步库。有关于 aiohttp 的详细操作,可以去官方文档:https://aiohttp.readthedocs.i…

使用小案例:


import aiohttp
import asyncio

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()

async def main():
    async with aiohttp.ClientSession() as session:
        html = await fetch(session, 'http://python.org')
        print(html)

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

解析库

1、beautifulsoup

官方文档:https://www.crummy.com/softwa…

html 和 XML 的解析, 从网页中提取信息,同时拥有强大的 API 和多样解析方式。一个我经常使用的解析库,对于 html 的解析是非常的好用。对于写爬虫的人来说这也是必须掌握的库。

2、lxml

GitHub:https://github.com/lxml/lxml

支持 HTML 和 XML 的解析,支持 XPath 解析方式,而且解析效率非常高。

3、pyquery

GitHub:https://github.com/gawel/pyquery

jQuery 的 Python 实现,能够以 jQuery 的语法来操作解析 HTML 文档,易用性和解析速度都很好。

数据存储

1、pymysql

GitHub:https://github.com/PyMySQL/Py…

官方文档:https://pymysql.readthedocs.i…

一个纯 Python 实现的 MySQL 客户端操作库。非常的实用、非常的简单。

2、pymongo

GitHub:https://github.com/mongodb/mo…

官方文档:https://api.mongodb.com/python/

顾名思义,一个用于直接连接 mongodb 数据库进行查询操作的库。

3、redisdump

使用方法:https://blog.csdn.net/zhwitbi…

redis-dump 是将 redis 和 json 互转的工具;redis-dump 是基于 ruby 开发,需要 ruby 环境,而且新版本的 redis-dump 要求 2.2.2 以上的 ruby 版本,centos 中 yum 只能安装 2.0 版本的 ruby。需要先安装 ruby 的管理工具 rvm 安装高版本的 ruby;

退出移动版