博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 爬虫之模拟登陆CSND
阅读量:6229 次
发布时间:2019-06-21

本文共 2391 字,大约阅读时间需要 7 分钟。

Python 爬虫之模拟登陆CSND

工具

基本的脚本语言是Python,虽然不敢说是最好的语言,至少是最好的之一(0.0),用模拟登陆,我们需要用到多个模块,如下:

  1. requests

  2. BeautifulSoup

requests

安装

  1. 下载源码安装

git clone git://github.com/kennethreitz/requests.gitcd requestspip install .
  1. pip

pip install requests

BeautifulSoup

介绍

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.

安装

easy_install beautifulsoup4
pip install beautifulsoup4

使用

from bs4 import BeautifulSoupsoup = BeautifulSoup(open("index.html"))soup = BeautifulSoup("data", 'lxml')

说明

requests主要是为了利用requests的高级会话机制,requests的会话对象可以让我们跨请求保持某些参数,比如cookies, headers等,

会话对象让你能够跨请求保持某些参数。它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 urllib3 的 connection pooling 功能。所以如果你向同一主机发送多个请求,底层的 TCP 连接将会被重用,从而带来显著的性能提升。

而BeautifulSoup主要是方便解析HTML源码,从中获取请求需要的一些参数

完整代码

# -*- coding: UTF-8 -*-from bs4 import BeautifulSoupimport requestss = requests.Session()class CSDN:    def __init__(self, username, password):        self.username = username        self.password = password        self.login_url = 'https://passport.csdn.net/account/login'        self.headers = {            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebK'                          'it/537.36 (KHTML, like Gecko) Chrome/61.0.3163.1'                          '00 Safari/537.36 OPR/48.0.2685.52',            'Referer': 'http://my.csdn.net/my/mycsdn'        }    def login(self):        params = {            'from': 'http://my.csdn.net/my/mycsdn'        }        html = s.get(self.login_url, params=params, headers=self.headers)        soup = BeautifulSoup(html.content, 'lxml')        lt = soup.select('input[name="lt"]')[0].get('value')        execution = soup.select('input[name="execution"]')[0].get('value')        event_id = soup.select('input[name="_eventId"]')[0].get('value')        data = {            'username': self.username,            'password': self.password,            'rememberMe': 'true',            'lt': lt,            'execution': execution,            '_eventId': event_id        }        r = s.post(self.login_url, data=data)        self.headers['Referer'] = 'http://passport.csdn.net/account/login?from=http%3A%2F%2Fmy.csdn.net%2Fmy%2Fmycsdn'        resp = s.get('http://my.csdn.net/my/mycsdn', headers=self.headers)        print(resp.text)username = input('请输入账号:')password = input('请输入密码:')cs = CSDN(username, password)cs.login()

项目地址:

吐槽QQ群: 173318043

转载地址:http://upxna.baihongyu.com/

你可能感兴趣的文章
Chatsworth公司推出了一款高科技数据中心柜锁
查看>>
微软豪购Linkedin 补移动社交船票?
查看>>
苹果iMessage上线Business Chat功能
查看>>
戴尔EMC、日立数据系统和NetApp现已出货博科第六代光纤通道方案
查看>>
南航率先加入综合交通出行大数据开放云平台
查看>>
英特尔应当收购联发科原因:成功进入移动芯片市场
查看>>
宗宁:企业微博品牌榜的新时代意义
查看>>
实例:某大型企业遭受勒索蠕虫袭击纪实
查看>>
OA选型之技术与性价比
查看>>
《Clojure数据分析秘笈》——1.8节从网页表中抓取数据
查看>>
《交互式程序设计 第2版》一3.6 导入外部库
查看>>
“云计算”让城市智慧起来
查看>>
Google计划收购数据科学社区Kaggle
查看>>
中国RFID市场规模及结构浅析
查看>>
厂商掘金智能家居市场 三大路径殊途同归
查看>>
京津冀大数据走廊:张北风电光伏成亮点
查看>>
任正非:80后90后是一代将星在闪烁
查看>>
Oracle 12c多租户特性详解:PDB 的备份与恢复
查看>>
《Adobe Illustrator CS4中文版经典教程》—第0课0.1节简 介
查看>>
Dat Data 13.5.1 发布,点对点数据共享
查看>>