Python爬虫与模拟登录
2017-04-30 16:17
369 查看
借用cookie进行登录验证的原理
一般情况用户使用浏览器进行登录操作,认证通过后服务器返回给用户一个cookie用来保存登录态。cookie是一些经过加密的键值对,在服务器端解密后能够提取到一些用户信息。cookie值在浏览器中按F12键后,输入密码点击登录后可以查看。如下图所示:利用requests包进行登录代理
我们首先将浏览器里复制到的cookie字符串进行处理,转化成为Python的字典格式。然后就是拼接要爬取页面的url字符串
有了爬取页面的url之后,利用requests模块将url和cookie发送给服务端
如果上一步执行顺利的话,s.text事实上已经是登录后网页的源码了。为了方便提取数据,我们引入etree模块,对s.text进行转换,这样就能利用xpath对标签进行精准选择了。
获取标签xpath。chrome浏览器鼠标在目标内容处右键->查看->在高亮源码处右键->copy->xpath。selector.xpath()返回值是一个list,千万要注意呀!
#coding=utf-8 import re import os import time import sys import re import urllib2 import urllib import requests import cookielib from lxml import etree reload(sys) sys.setdefaultencoding("utf8") #################################### if __name__ == '__main__': cookies = {} raw_cookies = """ # your own cookies here! """ for line in raw_cookies.split(';'): key, value = line.split('=', 1) cookies[key]=value #print cookies for i in range(1, 45): if (i == 1): myurl="http://rs.xidian.edu.cn/home.php?mod=spacecp&ac=plugin&id=bt:history" s = requests.get(myurl, cookies=cookies) selector = etree.HTML(s.text) for j in range(9, 32): with open('1.txt', 'a') as f: f.write(selector.xpath('//*[@id="ct"]/div[1]/div/div[1]/table/tbody/tr['+str(j)+']/td[3]')[0].text+'\r\n') f.close() else : myurl = "http://rs.xidian.edu.cn/home.php?mod=spacecp&ac=plugin&id=bt:history&page="+str(i) s = requests.get(myurl, cookies=cookies) selector = etree.HTML(s.text) for j in range(2, 32): with open('1.txt', 'a') as f: f.write(selector.xpath('//*[@id="ct"]/div[1]/div/div[1]/table/tbody/tr['+str(j)+']/td[3]')[0].text+'\r\n') f.close()
如果过程顺利的话,这时候应该已经在 1.txt 文件里有我们想要的数据了。本文将数据的获取和处理解耦合,至于怎么处理,排成怎样的格式,有太多方法。
相关文章推荐
- python爬虫实战之模拟正方教务系统登录查询成绩
- Python爬虫之模拟登录豆瓣获取最近看过的电影
- Python爬虫模拟登录带验证码网站
- python爬虫实践之模拟登录
- Python爬虫教程——模拟登录
- Python爬虫实战五之模拟登录淘宝并获取所有订单
- Python爬虫实战(5):模拟登录淘宝并获取所有订单(1)
- python爬虫模拟登录初体验
- python爬虫实践学习实例之模拟登录
- python 爬虫 利用selenium模拟登录帐号 向requests中重设 cookie
- 转载:python爬虫实践之模拟登录
- Python爬虫实战(5):模拟登录淘宝并获取所有订单
- python--python3爬虫之模拟登录知乎
- Python网络爬虫之模拟登录(以知乎为例)
- 【网络爬虫】【python】网络爬虫(三):模拟登录——伪装浏览器登录爬取过程
- [python 爬虫学习]利用cookie模拟网站登录
- Python爬虫模拟登录带验证码网站
- Python爬虫模拟登录带验证码网站
- python爬虫(下)--模拟登录与Captcha识别
- 爬虫三部曲之(三):Python模拟登录云笔记网站并爬取笔记内容