python爬取豆瓣电影信息
'''
用到的主要知识:(详情见官方文档)1. requests2. BeautifulSoup3. codecs4. os
'''
#-*-coding:utf-8
import requests
from bs4 import BeautifulSoup
import lxml
import os
import codecs
'''
s=requests.Session() #设置session用来跨对话请求,这里会自动保存cookies
url='https://accounts.douban.com/login' #登录豆瓣的页面
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
'Referer':'https://accounts.douban.com/login'} #设置请求头re=requests.get(url)
html=re.text
soup=BeautifulSoup(html,'lxml')
all_input=soup.find_all('input',type='hidden')
input_value=all_input[2].get('value') #得到请求表单上的captcha-id的值
img_url=soup.find('img',id='captcha_image').get('src')
solution=str(raw_input('%s:'%img_url)) #得到验证码,这里需要手动的输入
#请求表单
formdata={
'source':'None',
'redir':'https://www.douban.com/',
'form_email':'18796327106@163.com',
'form_password':'as676767as',
'captcha-solution':solution,
'captcha-id':input_value,
'login':'登录'
}
r=s.post(url,data=formdata,headers=headers) #post登录#用来检验是否已经完成了登录
sec_url='https://www.douban.com/group/guide?guide=1'
res=s.get(sec_url)
print res.text
'''--------------------**#以上是基本的思路,下面是用类将代码封装起来**
class DouBan():def __init__(self,log_url):self.log_url=log_urlself.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36','Referer': 'https://accounts.douban.com/login'} # 设置请求头self.s=requests.Session() #设置session#登录def log_in(self):solution,input_value=self.get_captcha_solution_id()#设置登录的表单formdata = {'source': 'None','redir': 'https://www.douban.com/','form_email': 'username',#这里填入自己的豆瓣账号'form_password': 'password',#这里填入自己的账号密码'captcha-solution': solution,'captcha-id': input_value,'login': '登录'}r = self.s.post(url, data=formdata, headers=self.headers) # post登录#获取登录界面的源码def get_log_html(self):re = requests.get(self.log_url)html = re.textreturn html#获取表单上的验证码和captcha-iddef get_captcha_solution_id(self):html=self.get_log_html()soup=BeautifulSoup(html,'lxml')img_url = soup.find('img', id='captcha_image').get('src')solution=str(raw_input('%s:'%img_url))all_input = soup.find_all('input', type='hidden')input_value = all_input[2].get('value') # 得到请求表单上的captcha-id的值return solution,input_value#验证是否能够登录def YZ(self):url='https://www.douban.com/group/guide?guide=1're=self.s.get(url)print re.text'''下面是爬取豆瓣电影排行榜的电影的详细信息'''#获得一页的所有电影的url,当然如果想要获得更多的url还是可以拓展的def get_url(self):all_a=[]url='https://movie.douban.com/chart're=self.s.get(url)html=re.textsoup=BeautifulSoup(html,'lxml')all_div=soup.find_all('div',class_='pl2')for div in all_div:all_a.append(div.find('a').get('href')) #将所有的url存储在一个列表中return all_a#下载所有的信息写入文件,这里的filename是想要存入的路径名def get_info(self,filename):all_url=self.get_url()path=os.path.normpath(filename) #规范路径名os.mkdir(path) #创建路径file=os.path.join(path,'film.txt') #将路径和文件名连在一起构成绝对路径f=codecs.open(file,'w',encoding='utf-8') #打开文件for url in all_url:re=self.s.get(url)html=re.textsoup=BeautifulSoup(html,'lxml')div=soup.find('div',id='info')h1=soup.find('h1') #获得电影的标题if div.text:text=h1.text+div.text #得到标签之中的内容print textf.write(text)f.close() #关闭文件if __name__=='__main__':url='https://accounts.douban.com/login'app=DouBan(url)app.log_in()filename='g:\\film'app.get_info(filename)
[requests文档:]http://requests-docs-cn.readthedocs.io/zh_CN/latest/user/quickstart.html
BeautifulSoup官方文档:
python爬取豆瓣电影信息相关推荐
- python爬取豆瓣电影信息_Python爬虫入门 | 爬取豆瓣电影信息
这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...
- python爬取豆瓣电影信息可行性分析_Python爬虫实现的根据分类爬取豆瓣电影信息功能示例...
本文实例讲述了Python爬虫实现的根据分类爬取豆瓣电影信息功能.分享给大家供大家参考,具体如下: 代码的入口:if __name__ == '__main__': main()#! /usr/bin ...
- python爬取豆瓣电影信息数据
题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...
- python爬取豆瓣电影信息_Python|简单爬取豆瓣网电影信息
前言: 在掌握一些基础的爬虫知识后,就可以尝试做一些简单的爬虫来练一练手.今天要做的是利用xpath库来进行简单的数据的爬取.我们爬取的目标是电影的名字.导演和演员的信息.评分和url地址. 准备环境 ...
- python爬取豆瓣电影评论_python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法...
def getHtml(url): """获取url页面""" headers = {'User-Agent':'Mozilla/5.0 ( ...
- Python爬取豆瓣电影top250的电影信息
Python爬取豆瓣电影top250的电影信息 前言 一.简介 二.实例源码展示 小结 前言 相信很多小伙伴在学习网络爬虫时,老师们会举一些实例案例讲解爬虫知识,本文介绍的就是经典爬虫实际案例–爬取豆 ...
- python爬虫爬取豆瓣电影信息城市_Python爬虫入门 | 2 爬取豆瓣电影信息
这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...
- Python爬虫入门(爬取豆瓣电影信息小结)
Python爬虫入门(爬取豆瓣电影信息小结) 1.爬虫概念 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或脚本.爬虫的本质是模拟浏览器打开网页,获取网页中我们想要的那部分数据. 2.基本流程 ...
- 小白都能看明白的Python网络爬虫、附上几个实用的爬虫小例子: 爬取豆瓣电影信息和爬取药监局
文章目录 网络爬虫 爬虫的基础知识 爬虫分类 requests模块 爬虫的简单案例 简单的收集器 爬取豆瓣电影信息 爬取药监局 返回数据类型 数据解析 爬取糗事百科图片(正则表达式) xpath解析数 ...
最新文章
- yum clean all之后出错_“之后”英语的4种表达方式?
- Nginx+Tomcat简单集群配置
- ASP.NET基础教程-DataGrid表格控件-模板列的使用
- 【Nginx】location 指向某一个文件 / 指定路径访问某一文件
- 确定S中最接近中位数的k个元素(算法导论第三版9.3-7)
- oracle 之 基础操作
- 过了一会的gduuu
- 2018年网络规划设计师上午真题及答案解析
- U盘安装centos7
- 二路归并排序简介及其并行化
- Python语法报错相关语句
- 绕过限制,申请Google+
- linux内存管理方式,简要概括Linux内存管理的方式
- Android 调用Gmail发送邮件
- R语言常见报错及解决方法
- 一看就懂【来自英雄联盟盖伦的怒吼】与 Python 详解设计模式(二)观察者模式...
- 在Vmware14中安装Linux系统教程(图文教程)
- windows10配置WSL(Ubuntu)环境
- 常说的“四层”和“七层”是什么
- 奥特曼系列ol进不去服务器,奥特曼系列OL闪退怎么办?解决方案