c httpclient抓取网页(Python爬虫怎么入门,到底要学习哪些内容?(上))

优采云 发布时间: 2022-02-23 01:08

  c 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。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线