资讯专栏INFORMATION COLUMN

Python 爬虫之模拟登陆CSND

firim / 1096人阅读

摘要:它也会在同一个实例发出的所有请求之间保持,期间使用的功能。而主要是方便解析源码,从中获取请求需要的一些参数完整代码请输入账号请输入密码项目地址模拟京东登录吐槽群

Python 爬虫之模拟登陆CSND 工具

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

requests

BeautifulSoup

requests 安装

下载源码安装

git clone git://github.com/kennethreitz/requests.git
cd requests
pip install .

pip

pip install requests
BeautifulSoup 介绍

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

安装
easy_install beautifulsoup4
pip install beautifulsoup4
使用
from bs4 import BeautifulSoup

soup = 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 BeautifulSoup
import requests

s = 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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44471.html

相关文章

  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0
  • Python入门网络爬虫精华版

    摘要:学习网络爬虫主要分个大的版块抓取,分析,存储另外,比较常用的爬虫框架,这里最后也详细介绍一下。网络爬虫要做的,简单来说,就是实现浏览器的功能。 Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。 首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫,当我们在浏览器中输入...

    Bmob 评论0 收藏0
  • Python爬虫学习:微信、知乎、新浪等主流网站的模拟登陆爬取方法

    摘要:微信知乎新浪等主流网站的模拟登陆爬取方法摘要微信知乎新浪等主流网站的模拟登陆爬取方法。先说说很难爬的知乎,假如我们想爬取知乎主页的内容,就必须要先登陆才能爬,不然看不到这个界面。图片描述知乎需要手机号才能注册登陆。 微信、知乎、新浪等主流网站的模拟登陆爬取方法摘要:微信、知乎、新浪等主流网站的模拟登陆爬取方法。 网络上有形形色色的网站,不同类型的网站爬虫策略不同,难易程度也不一样。从是...

    Kahn 评论0 收藏0
  • 超详细的Python实现百度云盘模拟登陆(模拟登陆进阶)

    摘要:方法不仅适用于百度云,别的一些比较难以模拟登陆的网站都可以按照这种方式分析。本文要求读者具有模拟登陆主要是抓包和阅读代码和密码学的基本知识。和模拟登陆微博的分析流程一样,我们首先要做的是以正常人的流程完整的登录一遍百度网盘。 这是第二篇从简书搬运过来的文章(大家别误会,是我原创的)。因为前一篇文章,我看反响还挺好的,所以把这篇也搬运过来了,其实目的还是为宣传自己的分布式微博爬虫(该项目...

    CarterLi 评论0 收藏0
  • 超详细的Python实现新浪微博模拟登陆(小白都能懂)

    摘要:可能有的老手觉得我写得很啰嗦,但其实很多新手可能都不知道这些细节,所以我把我在分析新浪微博模拟登陆的过程全写了出来。 这篇文章于去年4月发布在我的简书,现在把它放到这里,主要是为了宣传自己的分布式微博爬虫。下面是主要内容,希望能帮到有这个需求的朋友 最近由于需要一直在研究微博的爬虫,第一步便是模拟登陆,从开始摸索到走通模拟登陆这条路其实还是挺艰难的,需要一定的经验,为了让朋友们以后少...

    Aldous 评论0 收藏0

发表评论

0条评论

firim

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<