g爬虫常用的库
-
urllib re 内置的库
- urllib.request.urlopen(url)
-
requests
- 直接请求url,可以获取后台返回的json后者其他格式的数据,非js渲染的页面适用
- requests.get("www.baidu.com")
- post
- head
- ...
-
selenium
-
驱动浏览器,获取js渲染的结果,无法用requests获取
-
需要安装chromedriver到环境变量所支持的目录
-
缺点:需要打开浏览器
-
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.baidu.com") driver.page_source # 输出源代码
-
-
phantomjs
-
无节界面浏览器,直接后台处理数据
-
from selenuim import webdriver driver = webdriver.PhantomJS() driver.get("http://www.baidu.com") driver.page_source
-
-
lxml
- pip install lxml 安装,或者下载安装包
- xpath 网页解析方式,高效方便
-
beautifulsoup4
-
依赖lxml库
-
from bs4 import BeautifulSoup soup = BeautifulSoup('<html></html', 'lxml') # 参数1 html code # 参数2 解析方式
-
-
pyquery
-
语法和jquery一致,方便
-
pip install pyquery
-
from pyquery import PyQuery as pq doc = pq("<html>Hello</html>") r = doc('html').text()
-
-
pymysql
- 数据库交互
-
pymongo
-
nosql key-value存储
-
import pymongo client = pymongo.MongoClient("localhost") db = client["testdb"] db['collection'].insert({"name": "jack"})
-
-
redis
-
分布式爬虫,维护爬取队列
-
高效
-
import redis r = redis.Redis('localhost', 6379) r.set('name', 'Bob') r.get('name')
-
-
flask
- 轻量级的http server框架
-
django
- 重量级web服务器框架,比较强大,模版引擎,路由之类的
- 根据项目的量级来选
-
bottle
- 另一个轻量级的 http server的框架,开发效率高
-
jupyter
- 记事本,在线运行代码,记笔记,支持markdown