Python 网络爬虫学习笔记

Tags: spider 

本篇目录

说明

Python2 马上就要不维护了,现在要尽量使用 Python3,正好崔庆才写了一本《Python 3网络爬虫开发实战》,介绍了 Requests、Selenium、PhantomJS、Beautiful Soup 等 python 库的用法。

工具了解

Python3 的安装就不说了,小儿科,需要提一下的是可以用 virtualenv 创建的 python 运行环境,用下面的方式指定用 python3:

pip install virtualenv
virtualenv  -p python3 env
source env/bin/activate

Python 请求库

Requests 是一个发送 http 请求的 python 库,英文文档中文文档

pip3 install requests

Selenium 是一个用于 Web 自动化测试的浏览器,能够用代码控制浏览器内操作的特性使 Selenium 具有更广阔的应用空间,英文文档中文文档

pip3 install selenium

Chrome DriverGecko Driver 是配合 Selenium 使用的,分别用来驱动 Chrome 浏览器和 Firefox 浏览器,安装方法见:chromedrivergeckodriver

Phantomjs 是无界面的 WebKit 浏览器,无界面运行效率高,需要 下载安装 。可以被 Selenium 驱动,如下:

from selenium import webdriver
browser = webdriver.PhantomJS()
browser.get('https://www.baidu.com')
print(browser.current_url)

aiohttp 是一个异步发送 http 请求的 python 库,英文文档,采用异步机制,效率大大提高。

pip3 install aiohttp

Python 解析库

lxml 支持 HTML、XML 解析,支持 XPath 解析方式。

pip3 install lxml

Beautiful Soup 支持 HTML、XML 解析,API 强大,解析方法多,依赖前面的 lxml。

pip3 install beautifulsoup4

pyquery 使用类似 jQuery 的语法解析 HTML。

pip3 install pyquery

tesserocr 是一个 OCR 识别库 tesserac 的 Python API,可以用来识别图片中的文字。

yum install -y tesseract
pip3 install tesserocr pillow

移动端工具

用于对接 Mysql、Redis 等存储系统的 Python 库就不提了,重点介绍几个抓包和移动端工具,通过这些抓包工具可以抓取 APP 的通信数据,从而分析出协议规则。

Charles 是一款相当强大的抓包工具,具备代理功能, 用charles和Fiddler抓取、破解、改写(请求拦截)PC端、手机移动端通信数据 中有简单介绍。

mitmproxy 是一个支持 HTTP 和 HTTPS 抓包的控制台工具。

Appium 是移动端的自动化工具,相当于移动端 Selenium,可以驱动 Android、iOS 等移动设备,模拟点击、滑动、输入等操作,非常强大。

爬虫框架

爬虫框架集成了必须的爬取、解析、提取、存放工具,按照框架规则填写代码即可。

pyspider 国人开发的带有 Web 页面的开源爬虫框架。

Scrapy 是一个强大的爬虫框架,英文文档中文文档

简单电影爬虫开发记录

这里简单地用 requests 和 Beautiful Soup 爬取电影资讯。

创建单独的 python 环境

mkdir spider3
cd spider3
virtualenv  -p python3 env
source env/bin/activate
pip3 install django mysqlclient requests beautifulsoup4

创建 Django 项目后,创建 movie 应用:

python manage.py startapp movie

完成数据库配置以及 models 定义后,创建数据库表:

python manage.py makemigrations movie
python manage.py migrate

创建文件 bin/movie-spider.py,导入 django 环境。

后续内容见编程手册——Python3 爬虫开发

参考

  1. 李佶澳的博客
  2. Python3网络爬虫开发实战教程
  3. What is Selenium?
  4. 崔庆才:《Python 3网络爬虫开发实战》

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球