# -*- coding: utf-8 -*-

"""

Created on Wed Jun 6 13:18:58 2018

@author: Lenovo

"""

# -*- coding: utf-8 -*-

import requests

import urllib

import random

from datetime import datetime

# python2 和 python3的兼容代码

try:

# python2 中

import cookielib

print(f"user cookielib in python2.")

except:

# python3 中

import http.cookiejar as cookielib

print(f"user cookielib in python3.")

# session代表某一次连接

huihuSession = requests.session()

# 因为原始的session.cookies 没有save()方法,所以需要用到cookielib中的方法LWPCookieJar,这个类实例化的cookie对象,就可以直接调用save方法。

huihuSession.cookies = cookielib.LWPCookieJar(filename = "huihuCookies.txt")

userAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"

header = {

# "origin": "https://passport.huihu.cn",

"Referer": "http://hh.haiper.com.cn/w/wander/user/login/",

'User-Agent': userAgent,

}

def huihuLogin(account, password):

#

print ("开始模拟登录嘻嘻嘻")

postUrl = "http://hh.haiper.com.cn/w/wander/user/login/"

postData = {

"username": account,

"password": password,

}

# 使用session直接post请求

responseRes = huihuSession.post(postUrl, data = postData, headers = header)

# 无论是否登录成功,状态码一般都是 statusCode = 200

#responseRes = requests.post(postUrl, data = postData, headers = header)

# 无论是否登录成功,状态码一般都是 statusCode = 200

print(f"statusCode = {responseRes.status_code}")

#print(f"text = {responseRes.text}")

huihuSession.cookies.save()

def isLoginStatus():

# 通过访问个人中心页面的返回状态码来判断是否为登录状态

for i in range(2131,2134):

routeUrl = "http://hh.haiper.com.cn/w/bench/extend/health/trade/all?nickname=&type=&gender=&level=&range%5Bstart%5D=2014-11-11+14%3A57&range%5Bend%5D=2018-06-06+14%3A57&page="+str(i)

# 下面有两个关键点

# 第一个是header,如果不设置,会返回500的错误

# 第二个是allow_redirects,如果不设置,session访问时,服务器返回302,

# 然后session会自动重定向到登录页面,获取到登录页面之后,变成200的状态码

# allow_redirects = False 就是不允许重定向

try:

responseRes = huihuSession.get(routeUrl, headers = header, allow_redirects = False)

result = responseRes.text

except:

continue

start = result.find('

')

result = result[start:]

#print (result)

for j in range(1,16):

start = result.find('擦擦擦图片')

if start==-1:

break

else:

result = result[start:]

start = result.find('src="')

result = result[start+5:]

end = result.find('" class="img-rounded"')

imgpath = result[:end]

print (imgpath)

if imgpath=='/attachment/':

continue

randomname = datetime.now().strftime("%Y%m%d_%H%M%S") + str(random.randint(1,100))+'.jpg'

try:

urllib.request.urlretrieve(imgpath,'./擦擦擦/'+randomname)

except:

continue

print (i)

print(f"isLoginStatus = {responseRes.status_code}")

#print(f"text = {responseRes.text}")

if responseRes.status_code != 200:

return False

else:

return True

if __name__ == "__main__":

# 从返回结果来看,有登录成功

huihuLogin("xxxx", "xxxx")

isLogin1 = isLoginStatus()

print(f"is login huihu = {isLogin1}")

python爬带用户名密码的网页_python爬虫用户名密码登录POST相关推荐

  1. python爬音乐评论生成词云图_python爬虫+词云图,爬取网易云音乐评论

    又到了清明时节,用python爬取了网易云音乐<清明雨上>的评论,统计词频和绘制词云图,记录过程中遇到一些问题 爬取网易云音乐的评论 一开始是按照常规思路,分析网页ajax的传参情况.看到 ...

  2. python爬数据以字典变量保存_python爬虫第7篇——爬取的数据如何存档

    不能让你暴富,但至少可以奔小康了! 想了解更多精彩内容,快来关注南大盛联 阅读本文,假定你使用的是Windows操作系统下面的python3.X版本. 并且已经掌握了一些基本的python操作.否则, ...

  3. python爬带用户名密码的网页_python爬虫:使用账号、密码和验证码登录知乎网页...

    先上代码,后分析出现的问题: 1 #coding:utf-8 2 importre3 from bs4 importBeautifulSoup4 importgzip5 importurllib.re ...

  4. python 爬取贝壳网小区名称_Python爬虫实战:爬取贝壳网二手房40000条数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于啤酒就辣条 ,作者啤酒就辣条 一.网页分析 爬取贝壳网石家庄二 ...

  5. python爬取去哪网数据_Python爬虫入门:使用Python爬取网络数据

    1 网络爬虫 引用百度百科的定义:网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 简单的说,就是有一个程序可以自动去访问网页. 2 Python爬虫 如何实现爬虫? 简单的讲,一共 ...

  6. python爬取新浪新闻首页_Python爬虫学习:微信、知乎、新浪等主流网站的模拟登陆爬取方法...

    微信.知乎.新浪等主流网站的模拟登陆爬取方法 摘要:微信.知乎.新浪等主流网站的模拟登陆爬取方法. 网络上有形形色色的网站,不同类型的网站爬虫策略不同,难易程度也不一样.从是否需要登陆这方面来说,一些 ...

  7. python爬取知网论文关键词_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中【入门必学】...

    搜索出来的结果和知网上的结果几乎一样,另外以后面试找Python工作,项目经验展示是核心,如果你缺项目练习,去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面很多新 ...

  8. python爬去智联招聘网_Python爬虫爬取智联招聘(进阶版)

    点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 图片:Westworld Season 2 作者 王强 简介 Python追随者, ...

  9. python爬知网全文期刊数据库_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中【入门必学】...

    搜索出来的结果和知网上的结果几乎一样,另外以后面试找Python工作,项目经验展示是核心,如果你缺项目练习,去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面很多新 ...

最新文章

  1. 全面解读WEB 2.0
  2. Java线程池面试必备:核心参数、工作流、监控、调优手段
  3. 分布式存储 Ceph 的演进经验 · SOSP 2019
  4. 错误记录 Could NOT find GTest (missing: GTEST_INCLUDE_DIR)
  5. 简单实例讲解linux的module模块编译步骤
  6. OC类导入Swift工程演示
  7. 【Paper-Attack Defense】Adversarial Label-Flipping Attack and Defense for Graph Neural Networks
  8. 计算机不能上网 检查路线,腾达(Tenda)路由器不能上网的解决方法
  9. C#基础 控制台应用程序(一)介绍
  10. thymeleaf select 回显
  11. 为什么有些PDF打印不了
  12. 详谈外部浏览器如何实现复制微信号一键唤起微信号加好友
  13. IP属地靠谱吗?或是一把双刃剑
  14. 福建将乐窑文物首次系统对外展示 133件完整器亮相京城
  15. WAMP/WNMP单独安装
  16. 安科瑞预付费水电集团物业解决方案-Susie 周
  17. mongo从开始到安装以及遇到的问题
  18. python语言基本认识_Python学习之认知(一)
  19. 教你正确选择光伏组件与逆变器!
  20. 论文阅读:Coarse to Fine Vertebrae Localization and Segmentation with SpatialConfiguration-Net and U-Net

热门文章

  1. python numba.jit(该装饰器用于将Python函数编译为本机代码、python运算加速器)
  2. pycharm 如何设置文件头信息?信息模板 头文件 coding: utf-8
  3. ubuntu 更换系统软件源 和 pip源
  4. windows下配置mysql数据库_mysql数据库1-windows下mysql安装及配置
  5. Java clone浅复制与深复制的区别
  6. 在K8S上的Web服务该怎么做域名解析呢?
  7. mysql怎么删除临时表里的数据_谈谈MySQL数据库中临时表的应用
  8. qemu模拟armlinux执行目标文件系统的可执行文件
  9. 根据数据库表gengxin实体类_Python学习第四十八天记录打call:SQLALchemy操作MySQL关系型数据库...
  10. webpack 多页面 html,webpack打包多页应用,如何处理不同html页面(通过a标签)之间的跳转?...