python爬取豆瓣代码_python爬取豆瓣视频信息代码

这里是爬取豆瓣视频信息,用pyquery库(jquery的python库)。

一:代码

from urllib.request import quote

from pyquery import PyQuery as pq

import requests

import pandas as pd

def get_text_page(movie_name):

'''

函数功能:获得指定电影名的源代码

参数:电影名

返回值:电影名结果的源代码

'''

url = 'https://www.douban.com/search?q=' + movie_name

headers = {

'Host' : 'www.douban.com',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',

}

r = requests.get(url,headers = headers,timeout=5)

return r.text

def get_last_url(this_text):

'''

函数功能:根据指定的源代码得到最终的网页地址

参数:搜索结果源代码

返回值:最终的网页地址

'''

doc = pq(this_text)

lis = doc('.title a').items()

k = 0

this_str = ''

for i in lis:

# print('豆瓣搜索结果为:{0}'.format(i.text()))

# print('地址为:{0}'.format(i.attr.href))

# print('\n')

if k == 0:

this_str = i.attr.href

k += 1

return this_str

def the_last_page(this_url):

'''

函数功能:获得最终电影网页的源代码

参数:最终的地址

返回值:最终电影网页的源代码

'''

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',

}

r = requests.get(this_url,headers = headers,timeout=20)

return r.text

def the_last_text(this_text,movie_name):

'''

函数功能:获得每一项的数据

参数:爬取页面的源代码

返回值:返回空

'''

doc = pq(this_text)

# 获取标题

title = doc('#content h1').text()

# 获取海报

photo = doc('.nbgnbg img')

photo_url = photo.attr.src

r = requests.get(photo_url)

with open('{m}.jpg'.format(m = movie_name),'wb') as f:

f.write(r.content)

# 电影信息

message = doc('#info').text()

# 豆瓣评分

grade = doc('#interest_sectl').text()

# 剧情

things = doc('.related-info').text()

with open('{0}.txt'.format(movie_name),'w+') as f:

try:

f.writelines([title,'\n','\n\n',message,'\n\n',grade,'\n\n',things])

except:

f.writelines([title,'\n','\n\n',message,'\n\n',grade])

# 演员

# 演员名

name = []

person_name = doc('.info').items()

for i in person_name:

name.append(i.text())

# 演员图片地址

person_photo = doc('#celebrities')

j = 0

for i in person_photo .find('.avatar').items():

m = i.attr('style')

person_download_url = m[m.find('(') + 1:m.find(')')]

# 下载演员地址

r = requests.get(person_download_url)

try:

with open('{name}.jpg'.format(name = name[j]),'wb') as f:

f.write(r.content)

except:

continue

j += 1

def lookUrl(this_text,my_str):

'''

函数功能:获得观看链接

参数:爬取页面的源代码

返回值:返回空

'''

doc = pq(this_text)

all_url = doc('.bs li a').items()

movie_f = []

movie_url = []

for i in all_url:

movie_f.append(i.text())

movie_url.append(i.attr.href)

dataframe = pd.DataFrame({'观看平台':movie_f,'观看地址':movie_url})

dataframe.to_csv("{movie_name}的观看地址.csv".format(movie_name = my_str),index=False,encoding = 'utf_8_sig',sep=',')

def main():

name = input('')

my_str = name

movie_name = quote(my_str)

page_text = get_text_page(movie_name)# 得指定电影名的源代码

last_url = get_last_url(page_text)# 根据指定的源代码得到最终的网页地址

page_text2 = the_last_page(last_url)# 获得最终电影网页的源代码

the_last_text(page_text2,my_str)# 获得每一项的数据

lookUrl(page_text2,my_str)# 得到并处理观看链接

main()

二:结果如下(部分例子)

1.输入天气之子

2.输入百变小樱魔法卡

必须是已经上映的电影才有观看地址

3.独立日

python 爬取豆瓣书籍信息

继爬取 猫眼电影TOP100榜单 之后,再来爬一下豆瓣的书籍信息(主要是书的信息,评分及占比,评论并未爬取).原创,转载请联系我. 需求:爬取豆瓣某类型标签下的所有书籍的详细信息及评分 语言:pyth ...

python爬取豆瓣电影信息数据

题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...

python 爬取bilibili 视频信息

抓包时发现子菜单请求数据时一般需要rid,但的确存在一些如游戏->游戏赛事不使用rid,对于这种未进行处理,此外rid一般在主菜单的响应中,但有的如番剧这种,rid在子菜单的url中,此外返回的 ...

利用Python爬取豆瓣电影

目标:使用Python爬取豆瓣电影并保存MongoDB数据库中 我们先来看一下通过浏览器的方式来筛选某些特定的电影: 我们把URL来复制出来分析分析: https://movie.douban.com ...

python爬取网页的通用代码框架

python爬取网页的通用代码框架: def getHTMLText(url):#参数code缺省值为‘utf-8’(编码方式) try: r=requests.get(url,timeout=30) ...

Python爬取豆瓣《复仇者联盟3》评论并生成乖萌的格鲁特

代码地址如下:http://www.demodashi.com/demo/13257.html 1. 需求说明 本项目基于Python爬虫,爬取豆瓣电影上关于复仇者联盟3的所有影评,并保存至本地文件. ...

Python爬取豆瓣电影top

Python爬取豆瓣电影top250 下面以四种方法去解析数据,前面三种以插件库来解析,第四种以正则表达式去解析. xpath pyquery beaufifulsoup re 爬取信息:名称  评分 ...

Python爬取豆瓣指定书籍的短评

Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...

零基础爬虫----python爬取豆瓣电影top250的信息(转)

今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:pytho ...

随机推荐

Unity内存申请和释放

转自:http://www.jianshu.com/p/b37ee8cea04c 1.资源类型 GameObject, Transform, Mesh, Texture, Material, Shad ...

Dynamic CRM 2013学习笔记(十二)实现子表合计(汇总,求和)功能的通用插件

上一篇 Dynamic CRM 2013学习笔记(十一)利用Javascript实现子表合计(汇总,求和)功能 , 介绍了如何用js来实现子表合计功能,这种方法要求在各个表单上添加js方法,如果有很多 ...

如何在Windows上配置EBS R12.1.3的OAF开发环境

1.找到想要开发的EBS OAF扩展对应的PATCH,可以参照下面的Note,因为我要做的是R12.1.3的开发,所以要下载p9879989_R12_GENERIC OA Framework - Ho ...

zTree实现地市县三级级联Service接口測试

zTree实现地市县三级级联Service接口測试 ProvinceServiceTest.java: /** * @Title:ProvinceServiceTest.java * @Package ...

jquery $.getJSON()跨域请求

以前总是没搞明白是怎么回事,现在是迫不得已,就仔细看了看说明文档,终于测试成功了,记下   1,同一域名下和其他的请求可以是一样的 js: 代码如下: var url="http://loc ...

A comparison of local caches (2) 【本地缓存之比较 (2)】

接上一篇: A comparison of local caches (1) [本地缓存之比较 (1)] This article will compare the asynchronous loca ...

Appium环境搭建(python)

appium是一个开源的,适用于原生或者移动网络和混合应用程序在 iOS 和 Android 平台上的的开源自动化测试框架.在这里,详细的介绍Appium的环境搭建步骤. 1.安装Node.js在ht ...

.net读取Excel转datatable、.net读取的Excel存在合并单元格并且转成datatable

项目中经常会遇到Excel导入数据,Excel的模板会可能是存在合并单元格的,模板如下图所示 读取时需要填充合并单元格的值,转成datatable单元格值时,填充合并单元格的值,如下图所示: 合并单元 ...

代码覆盖率-JaCoCo

代码覆盖率 在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标,甚至,用代码覆盖率来考核测试任务完成情况,比如,代码覆盖率必须达到80%或 90%. JaCoCo Jacoco从多种角度对代码 ...

Ubuntu16.04安装yum的一种方式

1. 首先检测是否安装 build-essential 包 sudo apt-get install build-essential 2.安装yum sudo apt-get install yum ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值