前言
最近做了一个python自动登录淘宝爬取数据的脚本,关于这个脚本下篇会做介绍,在这之间涉及到许多框架,也遇到一些问题,所以在此主要做一些总结以备以后查询。
Python安装
各平台安装Python的方法参考: 安装python
Python的入门和语法参考:
Python基础教程
廖雪峰Python教程
Requests库的安装和使用
在Python爬虫开发中最为常用的库就是使用Requests实现HTTP请求,因为Requests实现HTTP请求简单、操作更为人性化。
安装Requests库
pip3 install requests
Requests库主要提供以下七种请求方法
Requests库的7个主要方法.png具体使用参考如下:
快速上手Requests
Scrapy库的安装和使用
scrapy安装
pip3 install Scrapy
scrapy的具体使用参考中文官网如下:
scrapy快速入门
selenium库的安装和使用
selenium: 是一个用于对web网页进行自动化测试的工具, 可以通过它提供的一些方法自动操作浏览器, 可以完全模拟人的操作
selenium在Python爬虫中的应用:
1 获取动态网页中的数据, 一些动态的数据我们在获取的源码中并没有显示的这一类动态加载数据
2 用于模拟登录, 一些比较复杂的登录过程, 如果不通过selenium中的浏览器驱动完成登录的话, 我们需要分析出来这个登录发起的所有请求之间关联,包括cookie等关键信息(比如知乎登录), 而通过selenium驱动浏览器来完成知乎登录的话, 就不需要考虑一些cookie, 请求和请求之间的关联等信息, 只需要用户名和密码即可登录
selenium的特点
-
它是通过驱动浏览器来进行页面登录, 或者是获取页面信息
-
通过selenium来爬取网址的时候, 效率比较低, 因为浏览器的打开, 请求, 渲染页面都需要一定的时间, 所以尽量少使用selenium进行网站爬取, 除非是动态网站
-
selenium提供的一些用于元素定位和查找的API都是纯Python语言实现的, 所以效率上看, 没有lxml中的定位API效率高
-
selenium是开源免费的, 支持主流的浏览器, IE, FireFox, Chrome, Opera, Safari等
使用方法:
- 安装selenium:
pip3 install selenium (第三方库)
- 安装Chrome 浏览器驱动, chromedriver
下载完成后:
windows 下,新建一个命名为chromedriver文件夹,将解压的chromedriver.exe放进文件夹,再配置进path环境变量
Mac、Linux下,把下载好的文件放在 /usr/bin 目录下就可以了。
注意: 浏览器驱动的版本最好要和浏览器的版本相匹配, 否则会出现不能启动浏览器的错误!
安装完成后:
1.引入这个库
from selenium import webdriver
2.创建一个Chrome浏览器对象
browser = webdriver.Chrome()
3.通过浏览器对象browser向某一个url发起请求
browser.get(url)
4.关闭浏览器
browser.quite()
mitmproxy库的安装和使用
mitmproxy是一个支持HHTP/HTTPS协议的抓包程序,类似Fiddler、Charles的功能,只不过世它通过控制台的形式操作。
mitmproxy还有两个关联组件:
mitmdump
:它是mitmproxy的命令行接口,利用它我们可以对接Python脚本,用Python实现监听后的处理。
mitmweb
: 它是一个Web程序,通过它我们可以清楚观察mimproxy捕获的请求。
mitmproxy的功能:
拦截HTTP和HTTPS请求和响应
保存HTTP会话请进行分析
模拟客户端请求,模拟服务器返回响应
利用反向代理将流量转发给指定的服务器
支持Mac和Linux上的透明代理
利用Python对HTTP请求和响应进行实时处理
安装:
完成mitmproxy的安装,另外还附带安装了mitmdump和mimweb这两个组件
pip3 install mitmproxy
pip3 install mitmproxy
网友评论