(硬貨)這幾個庫你都不會,你好意思說會Python爬蟲
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理
以下文章來源於騰訊雲 作者:python學習教程
( 想要學習Python?Python學習交流群:1039649593,滿足你的需求,資料都已經上傳群檔案流,可以自行下載!還有海量最新2020python學習資料。 )
1 請求庫
1.requests
requests庫應該是現在做爬蟲最火最實用的庫了,非常的人性化。有關於它的使用我之前也寫過一篇文章 一起看看Python之Requests庫 ,大家可以去看一下。
有關於requests最詳細的使用方法,大家可以參考官方文件:https://requests.readthedocs.io/en/master/
使用小案例:
>>> 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
urllib3是一個非常強大的http請求庫,提供一系列的操作URL的功能。
有關於它的詳細使用方法可以參考:https://urllib3.readthedocs.io/en/latest/
使用小案例:
>>> 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
自動化測試工具。一個呼叫瀏覽器的 driver,通過這個庫你可以直接呼叫瀏覽器完成某些操作,比如輸入驗證碼。
對於這個庫並非只是Python才能用,像JAVA、Python、C#等都能夠使用selenium這個庫
使用小案例:
from selenium import webdriver browser = webdriver.Firefox() browser.get('http://seleniumhq.org/'
4.aiohttp
基於 asyncio 實現的 HTTP 框架。非同步操作藉助於 async/await 關鍵字,使用非同步庫進行資料抓取,可以大大提高效率。
這個屬於進階爬蟲時候必須掌握的非同步庫。
使用小案例:
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
html 和 XML 的解析,從網頁中提取資訊,同時擁有強大的API和多樣解析方式。一個我經常使用的解析庫,對於html的解析是非常的好用。對於寫爬蟲的人來說這也是必須掌握的庫。
2.lxml
支援HTML和XML的解析,支援XPath解析方式,而且解析效率非常高。
3.pyquery
jQuery 的 Python 實現,能夠以 jQuery 的語法來操作解析 HTML 文件,易用性和解析速度都很好。
三、資料儲存庫
1、pymysql
一個純 Python 實現的 MySQL 客戶端操作庫。非常的實用、非常的簡單。
2、pymongo
顧名思義,一個用於直接連線 mongodb 資料庫進行查詢操作的庫。
3、redisdump
redis-dump是將redis和json互轉的工具;redis-dump是基於ruby開發,需要ruby環境,而且新版本的redis-dump要求2.2.2以上的ruby版本,centos中yum只能安裝2.0版本的ruby。需要先安裝ruby的管理工具rvm安裝高版本的ruby;