[TOC]

这里是爬取豆瓣视频信息,用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爬取豆瓣代码_python爬取豆瓣视频信息代码相关推荐

  1. python爬取网页书籍名称代码_python爬取亚马逊书籍信息代码分享

    我有个需求就是抓取一些简单的书籍信息存储到mysql数据库,例如,封面图片,书名,类型,作者,简历,出版社,语种. 我比较之后,决定在亚马逊来实现我的需求. 我分析网站后发现,亚马逊有个高级搜索的功能 ...

  2. python爬取豆瓣书籍_Python 爬取豆瓣读书标签下的书籍

    这几天想爬下豆瓣读书时发现 github 上他人分享的源码都有一定年份了,豆瓣读书的页面貌似也稍微改了,于是就在前人轮子的基础上改进一下重新爬下豆瓣读书.Python 版本是 3.7. 1.爬取信息 ...

  3. python爬虫如何爬亚马逊_Python爬取当当、京东、亚马逊图书信息代码实例

    注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...

  4. python爬取京东书籍_Python爬取当当、京东、亚马逊图书信息代码实例

    注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...

  5. 利用python爬取豆瓣音乐_python爬虫之豆瓣音乐top250

    回家很久了,实在熬不住,想起来爬点数据玩一玩,之前自己笔记本是win7加ubuntu16.04双系统,本打算在ubuntu里写代码的,可是回到家ubuntu打开一直是紫屏,百度知乎方法用了也没解决,厉 ...

  6. python爬取天气预报源代码_python抓取天气并分析 实例源码

    [实例简介] Python代码抓取获取天气预报信息源码讲解.这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单.这段代码可以获取当地的天气和.任意城市的天气预报, ...

  7. python 柱状图上显示字体_Python爬取百部电影数据,我发现了这个惊人真相!

    2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%:国产电影总票房411.75亿元,同比增长8.65%,市场占比 ...

  8. python教程app下载地址_Python爬取APP下载链接的实现方法

    首先是准备工作 Python 2.7.11:下载python 其中python2和python3目前同步发行,我这里使用的是python2作为环境.Pycharm是一款比较高效的Python IDE, ...

  9. python爬取收费漫画_python爬取收费漫画_Python爬虫,爬取腾讯漫画实战

    先上个爬取的结果图 最后的结果为每部漫画按章节保存 运行环境 ide vs2019 python3.7 chrome.chromedriver chrome和chromedriver的版本需要相互对应 ...

最新文章

  1. Sublime和Webstorm新建代码块
  2. 洛谷 P1207 [USACO1.2]双重回文数 Dual Palindromes
  3. python序列_什么是Python的序列协议?
  4. Eigrp恶意插入路由和致瘫***测试(四)
  5. 本地方法(JNI)——访问数组元素+错误处理
  6. [剑指offer]面试题第[58-2]题[JAVA][左旋转字符串][拼接]
  7. 模板设计模式_23种设计模式之模板设计模式
  8. 【两种方式】用python和ENVI画出高光谱遥感影像的3D立体图
  9. Java跨域问题以及如何使用Cors解决前后端 分离部署项目所遇到的跨域问题
  10. 实习三个月的地一个完整项目总结
  11. word如何去除某一页的页眉
  12. 小米摄像头结合samba共享存储实现视频实时转存
  13. vbscript下载文件(使用https绕过无效的证书错误)
  14. 软件经验|GDAL空间数据开源库开发介绍
  15. matlab植物叶面积,植物叶面积测量方法综述
  16. java秒转换为年月日_SimpleDateFormat将月/日/年 时分秒转换为年-月-日 时:分:秒
  17. python爬取天眼查数据(未破解图片验证及ajax版)
  18. 本地生活商家和达人注意了,如何提高核销率
  19. RHCSA第四天学习内容心得
  20. PAT A1119 Pre- and Post-order Traversals

热门文章

  1. 剑指offer——面试题57:删除链表中重复的结点
  2. 销售与顾客的PV同步算法
  3. 多线程中的静态代理模式
  4. ArrayList详细
  5. 那些不能遗忘的知识点回顾——操作系统系列(笔试面试高频题)
  6. api hook 例子,截获封包(转载)
  7. panoramio.com
  8. 项目总结25:海康威视SDK-Java二次开发-客流量分析
  9. office2003 office2007同时安装 配置问题的解决
  10. 伯克利区块链课程:替代密码验证,比特币应用数字签名的进化之路