import requestsimport html5libimport refrom bs4 import BeautifulSoups = requests.Session()      #这里要提一点,就是session的话就是对会话的一种维持,因为request缺乏持续性,仅限于2个相邻的页面url_login = 'http://accounts.douban.com/login'url_contacts = 'https://www.douban.com/people/****/contacts'formdata = {'redir':'https://www.douban.com',      #重定向'form_email':'t.t.panda@hotmail.com','form_password':'xxxxxxxxxxxxxx','login':u'登陆'            }‘‘‘关于字符串前面的功能的补充1.r/R
表示非转义的原始字符串,比如在字符串中如果出现\n是换行,但是如果在字符串的前面添加r则表示\和n两个字符,一般常见于正则表达式中。2.b
Python3里默认的str是(Python2里的)unicode, bytes是(Python2)的str, b前缀代表的就是bytes。 Python2里, b前缀没什么具体意义, 只是为了兼容Python3的这种写法。3.u/U
表示unicode字符串 ,不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。 建议所有编码方式采用UTF-8。’‘’headers = ' 这里自己打开开发者工具查看浏览器,复制粘贴就行了'r = requestys.post(url_login,data = formdata,headers= headers)content = r.textsoup = BeautifulSoup(content,'html5lib')captcha = soup.findall('img',id = 'captcha_image')        #查看是否有验证码if captcha:captcha_url  = captcha['src']re_captcha_id = r'<input type-"hidden"name="captcha-id" value = "(.*?)"/'captcha_id = re.findall(re_captcha_id,content)print(captcha_id)print(captcha_url)print(captcha_url)capycha_text = input('please input the captcha:')formdata['captacha-solution'] =captcha_textformdata['captacha-id'] =captcha_idr = requests.post(url_login,data = formdata,headers = headers)print(r.text)r = s.get(url_conteacts)with open('contacts.txt','w+',encoding = 'utf-8'') as f:
f.write(r.text)

但是我们也发现每一次登陆都要输入密码和账户,还要验证,这也实在是太麻烦了,所以可以通过cookies,这就是我们常说的那些记住当前网址的密码

import requests
headers = {........}
cookies = {...........}
url = 'xxxxxxxxxxxx'r= requests.get(url,cookies=cookies,headers = headers)
print(r.text)with open('sssss.txt','wb+') as f :f.write(r.content)

这其实就是最基本的一个爬虫套路模板了

关于上面的那个爬虫,爬出来的其实是验证码的图片,还需要手动打开然后识别图片里面的数字再手动输入,这个其实也是很麻烦的

这里先给出思路以后验证(如果还记得的呼哈)

1,利用selenium打开图片所在网页,保存这张图片,把图片读取到百度识图的api中,得到的答案自动反馈给程序

2,有一种设想,既然最后他要验证你输入的验证码对不对,那是不是图片的网页信息里面就夹杂着要比对的信息,那我是不是可以直接爬取这个然后反馈给程序?

3,要么索性偷个懒,链接挂到网上的验证码识别平台(滑稽)

转载于:https://www.cnblogs.com/xingnie/p/9703386.html

crawler碎碎念5 豆瓣爬取操作之登录练习相关推荐

  1. 【Grades Crawler】利用python编写爬虫 爬取西电教务处成绩并本地保存

    Grades Crawler 项目介绍 由于教务处成绩不易自己打印,故编写爬虫Grades Crawler, 其可以将自己的(需要合法的学生帐号信息)教务处成绩爬取下来,并本地保存为excel格式或直 ...

  2. 小菜鸟的第一个爬虫:豆瓣爬取电影信息

    爬取页面: [2016年国内公映电影排期] #!/usr/bin/env python # -*- coding=utf-8 -*-import urllib.request import re im ...

  3. python爬虫小案例_从豆瓣爬取《哪吒之魔童降世》的剧照

    一.在豆瓣电影网爬取以下剧照保存到本地: 本次案例只爬取前 5 页的剧照,先获取前五页的链接: for i in range(5):url = 'https://movie.douban.com/su ...

  4. python爬虫-豆瓣爬取数据保存为html文件

    接<python爬虫-豆瓣数据爬取-正则匹配>中的案例五,将爬取的豆瓣租房信息网址和标题保存为html文件. 脚本修改如下: # -*-coding:utf-8 -*- import re ...

  5. 菜鸟学IT之豆瓣爬取初体验

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3159 可以用pandas读出之前保存的数据: newsdf = pd.re ...

  6. mysql 豆瓣,爬取豆瓣电影Top250并存入Mysql

    最近使用scrapy爬取了豆瓣电影Top250的数据和图片保存到Mysql,给大家分享一下 创建scrapy startproject doubantop250 items.py class Doub ...

  7. 淘宝商品信息爬取(已登录)

    感谢此链接对淘宝登录的帮助 已成功爬取,以下是源代码: # 目标:获取淘宝搜索页面的信息 提取其中的商品名称和价格 # 理解:1.淘宝的搜索接口 2.翻页处理 # 技术路线:requests re # ...

  8. 洗礼灵魂,修炼python(67)--爬虫篇—cookielib之爬取需要账户登录验证的网站

    学完前面的教程,相信你已经能爬取大部分的网站信息了,但是当你爬的网站多了,你应该会发现一个新问题,有的网站需要登录账户才能看到更多的信息对吧?那么这种网站怎么爬取呢?这些登录数据就是今天要说的--co ...

  9. Java技术Jsoup爬取数据手动登录

    Java语言爬取网页数据信息,使用jsoup技术.有的需要爬取的数据信息必须要登录之后才能看到的.所以需事先模拟登陆,然后在手拆dom,整理数据.导出数据. ** 1.模拟登陆之手动登录 如果是自动登 ...

最新文章

  1. ps aux与ps -ef的区别
  2. lin通讯从节点同步间隔场_低成本总线技术——LIN总线协议规范介绍
  3. 推荐一个好用的Chrome扩展应用,管理新建标签页面的
  4. WPF实现Android菜单动画
  5. Python学习笔记(列表和元组的简单实用)
  6. [一分钟先生]涂勇:通过跳槽走上管理岗位不可取
  7. php安装扩展写kafca,安装PHP的kafka扩展
  8. 已遭利用的微软0day CVE-2020-1464,原来是两年前的老相识
  9. Linux中select函数学习及实例笔记
  10. Servlet的原理是什么?
  11. IOS-音乐播放器(附Demo)
  12. 直播短视频源码要如何开发?简单几步教你快速开发!
  13. led显示屏属于计算机类吗,计算机显示IPS和LED屏幕的优缺点是什么?
  14. 2005-04-28 把爸爸锁在阳台上
  15. 廖金菊——湖南高尔夫旅游职业学院文化社诗人
  16. 密码学(期末复习版)
  17. 计算机开机黑屏并有报警声,开机报警5声,开机黑屏报警8声
  18. AcWing4084 号码牌 (并查集 / bitset优化Floyd)
  19. leetcode:641. 设计循环双端队列
  20. SQL的左连接 ,右连接,内连接和全外连接的4者区别

热门文章

  1. (4) ebj学习:ejb发布web service
  2. java面试题十六 StringBuffer
  3. 解决IE10以下对象不支持“bind“属性或方法
  4. 后台getshell常用技巧总结
  5. 【Numpy 学习记录】np.stack 和 np.concatenate
  6. Gora官方文档之二:Gora对Map-Reduce的支持
  7. wordcloud用来制作词云
  8. 理解Promise规范
  9. 关于上上文hashmap的深入-hashmap产生死锁的详解
  10. Redis面试题相关知识整理