python爬虫模拟豆瓣登录

好几天过去了,终于可以更新第二篇爬虫,这次想用python爬虫模拟登陆豆瓣并爬取主页上精选内容的标题部分,确认登录成功。

前期分析

首先我们要模拟登陆豆瓣就必须先知道真实的用户登录豆瓣是个什么流程。因此我们可以打开chrome浏览器开发者工具抓包分析,豆瓣的网站登录流程以及需要post的对应的信息。这边以豆瓣为实例:


python爬虫模拟豆瓣登录_第1张图片
post数据

这就是我们需要提交的信息,包括用户名和密码,以及验证码和验证码的ID,想要模拟豆瓣登录就要构造一个相同的post请求。

工具使用

这一次我们会使用resquests这个库了,因为requests直接省去了urllib和urllib2的很多麻烦,省去了很多冗余的代码,如果不熟悉可以去官网去查看。Requests
另外还需要对bs4有一定的了解,会省去不少麻烦,以及RE正则表达式,这里快捷下帮助文档。 BeautifulSoup

基本框架

# -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
import urllib
import re

url =  'https://accounts.douban.com/login'
#构造post数据
data={
    'redir': 'https://www.douban.com/people/138461169/',
    'form_email':'xxxxxx',
    'form_password':'xxxxxx',
    'login':u'登录'
}
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
r = requests.post(url, data, headers=headers)
page = r.text
#利用bs4获得验证码图片地址
soup = BeautifulSoup(page,"html.parser")
captcha_url = soup.find('img',id='captcha_image')['src']
#利用正则获得验证码ID
pattern = re.compile('

 测试打开本地验证码图片,输入。


python爬虫模拟豆瓣登录_第2张图片
登录成功

登录成功抓取标题

 成功登录后需要爬取热门精选的标题

# -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
import urllib
import re

url =  'https://accounts.douban.com/login'
data={
    'redir': 'https://www.douban.com/',
    'form_email':'xxxxxx',
    'form_password':'xxxxxx',
    'login':u'登录'
}
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
r = requests.post(url, data, headers=headers)
page = r.text

soup = BeautifulSoup(page,"html.parser")
captcha_url = soup.find('img',id='captcha_image')['src']
pattern = re.compile('

原网页内容:


python爬虫模拟豆瓣登录_第3张图片
网页内容

下图就是抓取到的内容:


python爬虫模拟豆瓣登录_第4张图片
标题内容

 到这里已经完成了初步的脚本,因为实验暂时做到这。

面向对象改写代码

数据库存储

 这俩块还需要完善更新...

你可能感兴趣的:(python爬虫模拟豆瓣登录)