c httpclient抓取网页(GitHub:基于asyncio实现HTTP框架。异步操作借助于/await关键字)
优采云 发布时间: 2022-02-02 23:04c httpclient抓取网页(GitHub:基于asyncio实现HTTP框架。异步操作借助于/await关键字)
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())
2个解析库
1、美丽的汤
官方文档:
HTML和XML解析,从网页中提取信息,具有强大的API和多种解析方法。我经常使用的一个解析库,对html解析很有用。这也是编写爬虫的必备库。
2、lxml
GitHub:
支持HTML和XML解析,支持XPath解析方式,解析效率很高。
3、pyquery
GitHub:
jQuery的Python实现可以用jQuery语法对HTML文档进行操作和解析,具有很好的易用性和解析速度。
3 数据存储库
1、pymysql
GitHub:
官方文档:
MySQL 客户端操作库的纯 Python 实现。很实用也很简单。
2、pymongo
GitHub:
官方文档:
顾名思义,一个直接连接mongodb数据库进行查询操作的库。
3、redisdump
使用方法:
redis-dump是一个redis和json转换的工具; redis-dump是基于ruby开发的,需要一个ruby环境,而新版redis-dump需要2.2.2个以上的ruby版本,centos中yum只能安装< @2.0 版本的*敏*感*词*。需要先安装ruby的管理工具rvm才能安装更高版本的ruby;
最后,我是一个从事多年开发的老Python程序员。我已经辞职,目前正在做我自己的私人 Python 课程。今年年初,我花了一个月的时间整理了一篇最适合2019年学习的Python学习,干货可以送给每一位喜欢Python的朋友。想要领取的可以关注我的头条号,后台私信我:01,免费领取。