Python爬虫(2)--Coursera抓站小结

331 查看

继豆瓣抓站后再对Coursera下手

系统:Mac OS X 10.10.1
编辑器: Sublime Text2
Python版本: 2.7.8
模块依赖: import sys, string, re, random, urllib, urllib2, cookielib, getpass(均为系统内的模块)


0. 抓站小结

0.1. cookie处理

需要进行登陆的时候, 要进行cookie的处理,使用以下方法

0.2. 表单处理

某些网站需要进行账户和密码登陆, 需要使用POST方法向服务器发送账户和密码表单数据, 这里就需要模拟登陆.

如何获取表单数据的格式呢?

通过谷歌浏览器开发者工具中Network锁定请求头部和post发出的表单数据,伪装表单数据

当由于Method太多, 找不到POST提交登录请求Method方法的时候, 可以尝试使用错误密码, 这样就可以容易的找POST方法对应的头部.

找到POST方法

找到POST方法

表单处理

表单处理

0.3. 防盗链和伪装成浏览器访问

防盗链就是需要在请求的头部加入Referer字段, Referer 指的是HTTP头部的一个字段, 用来表示从哪儿链接到目前的网页,采用的格式是URL。换句话说,借着 HTTP Referer 头部网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。

伪装成浏览器就是将User-Agent设置为浏览器的字段

伪装头部

伪装头部

1. 伪装头部

使用谷歌浏览器自带的开发者工具, 选择Network(Element用来查看网站源码等功能), 获取详细的GET和POST方法, 从中获取登录请求的的头部信息,
从POST中获得Headers信息如下(省略部分不重要信息)

这样就能写出模拟头部的函数