码迷,mamicode.com
首页 > 其他好文 > 详细

crawler碎碎念5 豆瓣爬取操作之登录练习

时间:2018-09-25 23:28:19      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:unicode编码   表达式   ***   链接   get   import   兼容   find   验证码识别   

import requests

import html5lib

import re

from bs4 import BeautifulSoup

s = requests.Session()

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:xxxxxxxxxxxxxxlogin: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 豆瓣爬取操作之登录练习

标签:unicode编码   表达式   ***   链接   get   import   兼容   find   验证码识别   

原文地址:https://www.cnblogs.com/xingnie/p/9703386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!