本系列为自己学习爬虫的相关笔记,如有误,欢迎大家指正
处理登录表单
随着Web 2.0的发展,大量数据都由用户产生,这里需要用到页面交互,如在论坛提交一个帖子或发送一条微博。因此,处理表单和登录成为进行网络爬虫不可或缺的一部分。获取网页和提交表单相比,获取网页是从网页抓取数据,而提交表单是向网页上传数据。
在客户端(浏览器)向服务器提交HTTP请求的时候,两种常用到的方法是GET和POST。使用GET方法的时候,查询字符串(名称/值对)是在GET请求的URL中发送的,因为浏览器对URL有长度限制,所以GET请求提交的数据会有所限制。这里数据都清清楚楚地出现在URL中,所以GET请求不应在处理敏感数据时使用,如密码。
按照规定,GET请求只应用于获取数据,POST请求则用于提交数据。因为查询字符串(名称/值对)在POST请求的HTTP消息主体中,所以敏感数据不会出现在URL中,参数也不会被保存在浏览器历史或Web服务器日志中。表单数据的提交基本上要用到POST请求。
处理登录表单
处理登录表单可以分为两步:
- (1)研究网站登录表单,构建POST请求的参数字典。
- (2)提交POST请求。
import requests
session = requests.session() #创建一个session对象 session对象会存储特定用户会话所需的属性和配置信息,这对我们后面在其中保存和操作cookies非常有意义。
post_url = 'http://xxx.xx.com'
agent = ''
headers = {
'Host':'xxx.xx.com',
'Origin':'http://xxx.xx.com',
'Referer':'http://www.xxx.xx.com/test-login',
'User-Agent':agent
}
#这个要根据自己的需求来变更
postdata = {
'pwd' :'1