该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

from lxml import etree

import requests

BASE_DOMAIN = "http://www.dytt8.net"

HEADERS = {

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

}

def get_detail_urls(url):

response = requests.get(url, headers=HEADERS)

text = response.text

html = etree.HTML(text)

detail_urls = html.xpath('//table[@class="tbspan"]//a/@href')

detail_urls = map(lambda url:BASE_DOMAIN+url,detail_urls)

return detail_urls

def parse_detail_page(url):

movie = {}

response = requests.get(url,headers=HEADERS)

text = response.content.decode('gb2312','ignore')

html = etree.HTML(text)

title = html.xpath('//div[@class="title_all"]//font[@color="#07519a"]/text()')[0]

movie['title'] = title

zoomE = html.xpath('//div[@id="Zoom"]')[0]

imgs = zoomE.xpath('.//img/@src')

cover = imgs[0]

screenshot = imgs[1]

movie['cover'] = cover

movie['screenshot'] = screenshot

def parse_info(info,rule):

return info.replace(rule,'').strip()

infos = zoomE.xpath('.//text()')

# for info in infos:

for index,info in enumerate(infos): #有索引

if info.startswith('◎年  代'):

info = parse_info(info,'◎年  代')

movie['year'] = info

elif info.startswith('◎产  地'):

info = parse_info(info,'◎产  地')

movie['country'] = info

elif info.startswith('◎类  别'):

info = parse_info(info,'◎类  别')

movie['category'] = info

elif info.startswith('◎语  言'):

info = parse_info(info,'◎语  言')

movie['language'] = info

elif info.startswith('◎字  幕'):

info = parse_info(info,'◎字  幕')

movie['sub-title'] = info

elif info.startswith('◎豆瓣评分'):

info = parse_info(info,'◎豆瓣评分')

movie['douban_rating'] = info

elif info.startswith('◎片  长'):

info = parse_info(info,'◎片  长')

movie['duration'] = info

elif info.startswith('◎导  演'):

info = parse_info(info,'◎导  演')

movie['director'] = info

elif info.startswith('◎主  演'):

info = parse_info(info, '◎主  演')

actors = [info]

for x in range(index+1,len(infos)):

actor = infos[x].strip()

if actor.startswith('◎'):

break

actors.append(actor)

movie['actors'] = actors

elif info.startswith('◎简  介'):

info = parse_info(info,'◎简  介')

for x in range(index + 1, len(infos)):

profile = infos[x].strip()

if profile.startswith('【下载地址】'):

break

movie['profile'] = profile

# download_url = html.xpath['//td[@bgcolor="#fdfddf"]/a/@href']

# movie['download_url'] = download_url

return movie

def spider():

base_url = 'http://www.dytt8.net/html/gndy/dyzz/list_23_{}.html'

moives = []

for x in range(1,8):

#第一个for循环,是用来控制总共7页

url = base_url.format(x)

detail_urls = get_detail_urls(url)

for detail_url in detail_urls:

#第二个for循环,是用来遍历一页中所有电影的详情url

movie = parse_detail_page(detail_url)

moives.append(movie)

print(movie)

if __name__ == '__main__':

spider()

python index 报错_Python3 抓取数据报错IndexError: list index out of range相关推荐

  1. python 异步下载图片_python3抓取异步百度瀑布流动态图片(二)get、json下载代码讲解...

    制作解析网址的get 1 defgethtml(url,postdata):2 3 header = {'User-Agent':4 'Mozilla/5.0 (Windows NT 10.0; WO ...

  2. python3 for index_Python3 抓取数据报错IndexError: list index out of range

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 from lxml import etree import requests BASE_DOMAIN = "http://www.dytt8.n ...

  3. 小猪的Python学习之旅 —— 20.抓取Gank.io所有数据存储到MySQL中

    小猪的Python学习之旅 -- 20.抓取Gank.io所有数据存储到MySQL中 标签:Python 一句话概括本文: 内容较多,建议先mark后看,讲解了一波MySQL安装,基本操作,语法速成, ...

  4. Python爬虫实战六之抓取爱问知识人问题并保存至数据库

    大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...

  5. [Python爬虫] 三、数据抓取之Requests HTTP 库

    往期内容提要: [Python爬虫] 一.爬虫原理之HTTP和HTTPS的请求与响应 [Python爬虫] 二.爬虫原理之定义.分类.流程与编码格式 一.urllib 模块 所谓网页抓取,就是把URL ...

  6. 用python爬虫下载视频_使用Python编写简单网络爬虫抓取视频下载资源

    我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...

  7. Python实现的淘宝直通车数据抓取(1)

    最近帮一个朋友做一个抓取淘宝直通车数据的小项目,感觉ython比较适合写爬虫程序,决定使用Python来做程序. 首先是登陆程序,因为淘宝的登陆校验很复杂,所以不能直接使用命令行的形式输入账号密码.查 ...

  8. 基于python的今日头条文章抓取内含signature算法

    基于python的今日头条文章抓取内含signature算法 扫二维码添加微信 备注:爬虫 , 拉你进爬虫交流群 或许你会成为第一个加群的人~ 刚有的创群想法! 1. 简单文字描述头条爬虫注意点 由于 ...

  9. Python爬虫包 BeautifulSoup 递归抓取实例详解

    Python爬虫包 BeautifulSoup 递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到另 ...

  10. Python爬虫之gif图片抓取

    Python爬虫之gif图片抓取 标签:图片爬虫 这几天,对于怎么去爬取图片很感兴趣,就研究了一下,图片爬虫可以说是有简单,更有复杂的,今天,我做了一个比较简单的gif的图片爬虫,仅仅学习一下怎么进行 ...

最新文章

  1. python popen阻塞_对Python subprocess.Popen子进程管道阻塞详解
  2. BUG管理系统(Mantis)迁移实录
  3. 网页排版规则:你需要知道的
  4. 英语语法总结--独立主格
  5. tomcat-内存溢出java.lang.OutOfMemoryErrory:PermGen space解决方法
  6. android统计测试题,Allocation Tracker(Android Studio)
  7. C语言在当代人工智能背景下的作用,人工智能c语言新手入门
  8. 李国飞:全面反思腾讯的战略
  9. Nginx介绍及安装配置
  10. 浅谈“艰难困苦,玉汝于成”
  11. 【基础知识】8、加州房价预测项目精细解释
  12. 去除桌面快捷方式上的小箭头
  13. [UOJ UNR #2]积劳成疾
  14. 在 Solidity 中 ++i 为什么比 i++ 更省 Gas?
  15. vsCode 快捷键
  16. 数据分析可视化之模型介绍
  17. ONVIF 视频对接,ODM无法显示NVT
  18. Torah主网上线,利好不断,分析测试币与主网币的区别
  19. MATLAB降维工具箱
  20. Nginx 新手入门学习

热门文章

  1. 中国石油大学(北京)-《机器人设计》第一阶段在线作业
  2. 数字转换成英文 金额转成英文大写
  3. 文件是否存在 FileExists 方法
  4. 二维曲线 去噪点 c++_二维介孔聚吡咯-氧化石墨烯异质结用于制备无枝晶的锂金属负极...
  5. CA65测试针对的是哪些产品呢
  6. 通过PSAM读CPU卡号流程小结
  7. 一步步教你装超强插件~油猴插件管理器Tampermonkey
  8. 我看到左岸读书上的留言,感觉挺有新意
  9. php和ar的关系,vr与ar的区别
  10. 图片溢出div,超出div解决办法