爬虫再探实战(二)———模拟登陆豆瓣(续集。。)

    关于豆瓣,还是算是爬虫友好型的网站,之前模拟登陆也很容易就成功了,不过最近要在豆瓣抓点东西,发现代码已经不能用了。打印源码发现,需要验证码了。

所以,这里写个续集。。。较上一篇改动主要在验证码和一个随机字符串的获取,再之后加入pyload就行了。具体参照代码。

import re
import requests

headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36‘,
           ‘Referer‘:‘https://www.douban.com/accounts/login?source=movie‘}
s = requests.Session()
# 获取验证码
imgdata = s.get("https://www.douban.com/accounts/login?source=movie", headers=headers, verify=False).text
print(imgdata)
pa = re.compile(r‘<img id="captcha_image" src="(.*?)" alt="captcha" class="captcha_image"/>‘)
img_url = re.findall(pa, imgdata)[0]
# print(img_url)
picdata = s.get(img_url).content
with open("douban.jpg", ‘wb‘) as f:
    f.write(picdata)

pa_id = re.compile(r‘<input type="hidden" name="captcha-id" value="(.*?)"/>‘)
capid = re.findall(pa_id, imgdata)[0]
print(capid)

capimg = input("输入验证码:")
payload = {
"source":"movie",
"redir":"https://movie.douban.com/",
"form_email":"你的邮箱",
"form_password":"你的密码",
"captcha-solution":capimg,
"captcha-id":capid,
"login":"登录"
}

log_url = "https://accounts.douban.com/login"
data1 = s.post(log_url, data=payload, verify=False)  # 绕过了SSL验证
print(data1.status_code)

data2 = s.get(‘https://www.douban.com/people/146448257/‘)
print(data2.status_code)
print(data2.text)

  大概就这样,今天先写到这了,天快明了。。2333

时间: 2024-10-23 16:00:04

爬虫再探实战(二)———模拟登陆豆瓣(续集。。)的相关文章

爬虫再探实战(二)———模拟登陆豆瓣

爬虫有时候也要进入登陆页面之后进行爬取,这就避免不了模拟登陆了.自己在这里卡了好久,终于算是模拟成功一次. 当然,这次也是用requests,真是好用的很呢.上代码. #------------ #2016/6/11 #模拟登陆豆瓣成功!!! import requests url = 'https://accounts.douban.com/login' headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.

爬虫再探实战(五)———爬取APP数据——超级课程表【一】

关于爬虫,开始以为只能爬取网页数据,后来知道APP也能抓取.于是,在学校利用空闲时间,耗时两周实现了数据的抓取和简单的数据分析. 目标,抓取超级课程表XX大学(其实是我们大学啦...)学生20000条发帖信息.思路如下: STEP1:为我们的爬虫找到入口 APP请求数据,也是通过网络协议,这样,我们就抓包来定位入口,这里我用的是fiddler.关于设置手机和fiddler的关联,请参考这篇文章. 找到登陆入口为:http://120.55.151.61/V2/StudentSkip/loginC

爬虫再探实战(三)———爬取动态加载页面——selenium

自学python爬虫也快半年了,在目前看来,我面临着三个待解决的爬虫技术方面的问题:动态加载,多线程并发抓取,模拟登陆.目前正在不断学习相关知识.下面简单写一下用selenium处理动态加载页面相关的知识.目标——抓取页面所有的高考录取分数信息. 对于动态加载,开始的时候是看到Selenium+Phantomjs的强大,直接就学的这个.打开网页查看网页源码(注意不是检查元素)会发现要爬取的信息并不在源码里面.也就是说,从网页源码无法通过解析得到数据.Selenium+Phantomjs的强大一方

爬虫再探实战(四)———爬取动态加载页面——请求json

还是上次的那个网站,就是它.现在尝试用另一种办法——直接请求json文件,来获取要抓取的信息. 第一步,检查元素,看图如下: 过滤出JS文件,并找出包含要抓取信息的js文件,之后就是构造requests请求对象,然后解析json文件啦.源码如下: import requests def save(school_datas): for data in school_datas: # print(data) year = data['year'] province = data['province'

Python爬虫(二十二)_selenium案例:模拟登陆豆瓣

本篇博客主要用于介绍如何使用selenium+phantomJS模拟登陆豆瓣,没有考虑验证码的问题,更多内容,请参考:Python学习指南 #-*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.keys import Keys import time #如果获取页面时获取不到文本内容,加入下面参数 driver = webdriver.PhantomJS(service_args=[

selenium 模拟登陆豆瓣,爬去武林外传的短评

selenium 模拟登陆豆瓣,爬去武林外传的短评: 在最开始写爬虫的时候,抓取豆瓣评论,我们从F12里面是可以直接发现接口的,但是最近豆瓣更新,数据是JS异步加载的,所以没有找到合适的方法爬去,于是采用了selenium来模拟浏览器爬取. 豆瓣登陆也是改了样式,我们可以发现登陆页面是在另一个frame里面 所以代码如下: # -*- coding:utf-8 -*- # 导包 import time from selenium import webdriver from selenium.we

通过Android源码分析再探观察者模式(二)

接着上篇文章,现在在通过Android实际开发和源码再探观察者模式,listview是我们日常开发中必用的控件,虽然之前就有listview的替代品(recyclerview),现在不去深究两个控件到底谁好谁差,但有一点需要强调下,它们之间有一大相同点,都是通过观察者模式去实现数据更新. 首先,我们先去看一个简单的例子 /** * * created by zero on2016-6-1 * * 通过listview再探观察者模式 * */ public class MainActivity e

爬虫实现模拟登陆豆瓣

一: # -*- encoding:utf-8 -*- import requests from bs4 import BeautifulSoup import urllib import re loginUrl = 'http://accounts.douban.com/login' formData={ "redir":"http://movie.douban.com/mine?status=collect", "form_email":&q

《python3网络爬虫开发实战》--模拟登陆

1.cookies池的搭建 Cookies池需要有自动生成 Cookies.定时检测 Cookies.提供随机 Cookies等几大核心功能. Cookies 池架构的基本模块分为 4 块:存储模块 . 生成模块.检测模块和接口模块 . 每个模块的 功能如下 . 存储模块负责存储每个账号的用户名密码以及每个账号对应的 Cookies 信息,同时还需要提供一些方法来实现方便的存取操作 . 生成模块负责生成新的 Cookies. 此模块会从存储模块逐个拿取账号的用户名和密码, 然后模拟登录目标页面,