W1ND123 发表于 2021-11-26 10:29:26

关于模拟豆瓣登录的问题

到了爬虫这一章节,越来越多看不懂的东西,就连讲解都没有,自己去博客查找,也看不懂,怎么办啊呜呜呜

import re
import urllib.request
from http.cookiejar import CookieJar

# 豆瓣的登录url
loginurl = 'https://www.douban.com/accounts/login'
cookie = CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor)

data = {
    "form_email":"your email",
    "form_password":"your password",
    "source":"index_nav"
}
data = {}
data['form_email'] = '你的账号'
data['form_password'] = '你的密码'
data['source'] = 'index_nav'

response = opener.open(loginurl, urllib.parse.urlencode(data).encode('utf-8'))

#验证成功跳转至登录页
if response.geturl() == "https://www.douban.com/accounts/login":
    html = response.read().decode()
   
    #验证码图片地址
    imgurl = re.search('<img id="captcha_image" src="(.+?)" alt="captcha" class="captcha_image"/>', html)
    if imgurl:
      url = imgurl.group(1)
      # 将验证码图片保存至同目录下
      res = urllib.request.urlretrieve(url, 'v.jpg')

      # 获取captcha-id参数
      captcha = re.search('<input type="hidden" name="captcha-id" value="(.+?)"/>' ,html)

      if captcha:
            vcode = input('请输入图片上的验证码:')
            data["captcha-solution"] = vcode
            data["captcha-id"] = captcha.group(1)
            data["user_login"] = "登录"

            # 提交验证码验证
            response = opener.open(loginurl, urllib.parse.urlencode(data).encode('utf-8'))

            # 登录成功跳转至首页 '''
            if response.geturl() == "http://www.douban.com/":
                print('登录成功!')


以上标红处都是不知道的东西,博客搜索也是比较专业的讲解,呜呜呜
到现在也没搞懂
opener
handler这些到底为什么。。。

我学python是希望可以学习爬虫辅助自己
请大神指点,接下来怎么学习才可以让自己走上正确的道路啊

suchocolate 发表于 2021-11-26 13:11:24

本帖最后由 suchocolate 于 2021-11-26 13:12 编辑

https://gitee.com/Python3WebSpider/Python3WebSpider
想问的这里都有,建议从基础看起。基础打好,事半功倍。
页: [1]
查看完整版本: 关于模拟豆瓣登录的问题