c httpclient抓取网页(Python爬虫怎么入门,到底要学习哪些内容?(上))
优采云 发布时间: 2022-02-23 01:08c httpclient抓取网页(Python爬虫怎么入门,到底要学习哪些内容?(上))
很多朋友不知道Python爬虫怎么上手,怎么学,学什么。今天给大家介绍一些学习爬虫必须掌握的第三方库。
废话不多说,直接上干货。
请求库
GitHub:
requests 库应该是现在爬虫最流行和最实用的库了,而且非常人性化。在文章之前我也写过一篇关于它的使用的文章,我们来看看Python中的Requests库,大家可以看看。
requests最详细的用法可以参考官方文档:
使用一个小案例:
>>> 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, ...}
GitHub:
urllib3 是一个非常强大的 http 请求库,提供了一系列操作 URL 的函数。
详细使用方法请参考:
使用一个小案例:
>>> import urllib3
>>> http = urllib3.PoolManager()
>>> r = http.request('GET', 'http://httpbin.org/robots.txt')
>>> r.status
200
>>> r.data
'User-agent: *\nDisallow: /deny\n'
GitHub:
自动化测试工具。调用浏览器的驱动程序。有了这个库,你可以直接调用浏览器完成某些操作,比如输入验证码。
对于这个库,不仅可以使用Python,比如JAVA、Python、C#等都可以使用selenium库
有关如何在 Python 语言中使用该库的信息,可以访问并查看官方文档
使用一个小案例:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
GitHub:
基于 asyncio 实现的 HTTP 框架。借助 async/await 关键字的异步操作和使用异步库进行数据捕获可以大大提高效率。
这是一个高级爬虫时必须掌握的异步库。关于aiohttp的详细操作可以去官方文档:
使用一个小案例:
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())
解析库
官方文档:
解析html和XML,从网页中提取信息,具有强大的API和多种解析方法。我经常使用的一个解析库,对html解析很有用。这也是编写爬虫的人必备的库。
GitHub:
支持HTML和XML解析,支持XPath解析方式,解析效率很高。
GitHub:
jQuery的Python实现可以使用jQuery语法对HTML文档进行操作和解析,具有很好的易用性和解析速度。
数据存储库
GitHub:
官方文档:
一个用纯 Python 实现的 MySQL 客户端操作库。很实用也很简单。
GitHub:
官方文档:
顾名思义,一个直接连接mongodb数据库进行查询操作的库。
指示:
redis-dump 是一个redis和json转换的工具;redis-dump是基于ruby开发的,需要ruby环境,而新版本的redis-dump需要2.2.2或以上的ruby版本,centos中yum,你只能安装 2.0 版本的 ruby。需要先安装ruby管理工具rvm才能安装更高版本的ruby。