新博客:https://wywwzjj.top/

具体分析以后再补,静态页面也没啥好分析的。

import requests, re
from bs4 import BeautifulSoup
import xlsxwriter
import datetime
from lxml import etreedef get_URLs(URL, page):# URLs = []# html = get_html(start_url)# soup = BeautifulSoup(html, 'lxml')# urls = soup.find(id='menu')# pattern = re.compile(r'href="(.+)">')  # 匹配模式# res = re.findall(pattern, str(urls))# host = 'http://www.ygdy8.net/'# for u in res:#     if 'http' not in u:#         u = host + u#     URLs.append(u)# URLs.insert(10, URLs[-3])# del URLs[1]# url = URLs[:10]# html = get_html(url[0])# soup = BeautifulSoup(html, 'lxml')# page = soup.find(class_='x')domain = 'http://www.ygdy8.net'start_url = URLurl = start_url + page + '.html'html = get_html(url)soup = BeautifulSoup(html, 'lxml')urls = soup.find_all(class_='ulink')# print(urls)pattern = re.compile(r'href="(.+?)">')  # 匹配模式res = re.findall(pattern, str(urls))#print(len(res))# print(res)for u in res:if 'index' in u:res.pop(res.index(u))# 每页落掉了两个urls = list(map(lambda u: domain+u, res))return urlsdef get_html(url):try:headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",'ContentType': 'text/html; charset=utf-8','Accept-Encoding': 'gzip, deflate, sdch','Accept-Language': 'zh-CN,zh;q=0.8','Connection': 'keep-alive'}html = requests.get(url, headers=headers, timeout=30)html.encoding = html.apparent_encodingreturn html.textexcept:print('获取HTML失败')def get_data(html):contentDir = {'name': '','decade': '','type': '','douban_score': '','brief':''}selector = etree.HTML(html)content = selector.xpath("//div[@class='co_content8']/ul/tr/td/div/td/p/text()")# print(content)for each in content:if each[0:5] == '◎片\u3000\u3000名':# 片名contentDir['name'] = each[6: len(each)]elif each[0:5] == '◎类\u3000\u3000别':contentDir['type'] = each[6: len(each)]elif each[0:5] == '◎豆瓣评分':# 豆瓣评分contentDir['douban_score'] = each[6: len(each)]elif each[0:5] == '◎年\u3000\u3000代':# 年份contentDir['decade'] = each[6: len(each)]elif each[0:5] == '◎简\u3000\u3000介':# 简介brief = ''for one in content[content.index(each)-len(content)+1:]:if len(one):brief += one;contentDir['brief'] = brief.strip()# print(contentDir)return contentDirdef createListHeader(workbook):worksheet = workbook.add_worksheet()bold = workbook.add_format({'bold': True, 'font_color': 'red','align':'center'})worksheet.write('A1', '片名', bold)worksheet.write('B1', '年份', bold)worksheet.write('C1', '类别', bold)worksheet.write('D1', '豆瓣评分', bold)worksheet.write('E1', '简介', bold)# 设置列宽度worksheet.set_column('A:A', 50)worksheet.set_column('B:B', 4)worksheet.set_column('C:C', 20)worksheet.set_column('D:D', 25)worksheet.set_column('E:E', 300)return worksheetrow = 1
def storeMovieList(data, worksheet, font):col = 0global rowworksheet.write(row, col, data['name'])worksheet.write(row, col + 1, data['decade'])worksheet.write(row, col + 2, data['type'])if len(data['douban_score']):worksheet.write(row, col + 3, data['douban_score'])else:worksheet.write(row, col + 3, '暂无')worksheet.write(row, col + 4, data['brief'])row += 1if __name__ == '__main__':start_url = [['http://www.ygdy8.net/html/gndy/dyzz/list_23_',185], ['http://www.ygdy8.net/html/gndy/china/list_4_',111],['http://www.ygdy8.net/html/gndy/oumei/list_7_',205], ['http://www.ygdy8.net/html/gndy/jddy/20160320/50510_',4]]workbook = xlsxwriter.Workbook('MovieList.xlsx')  # 创建表worksheet = createListHeader(workbook)font = workbook.add_format({'align': 'center'})print("\n 开始爬取电影天堂所有电影\n")for u in start_url:for i in range(1,u[1]):urls = get_URLs(u[0], str(i))for url in urls:try:html = get_html(url)data = get_data(html)time = datetime.datetime.now()print(str(time)[10:19] + ": 正在爬取第 " + str(row) + " 个电影")storeMovieList(data, worksheet, font)except:print(url, " 页面出错")continuetry:print("\n    ****** 存储成功! ******")workbook.close()print("\n    ******* 爬取结束 *******")except:print("\n-------------------文档关闭失败----------------\n")print("---------------请先关闭 Excel 再重新爬取--------")

爬取电影天堂全站电影相关推荐

  1. 爬取电影天堂最新电影(xpath结合lxml)

    完整代码 import requests from lxml import etree from openpyxl import WorkbookBASEURL='https://www.dytt8. ...

  2. python翻页爬取电影天堂网电影的磁力链接

    python翻页爬取电影天堂网电影的磁力链接 案例目的: 介绍如何通过首页的url提取详情页的url以及如何通过xpath语法提取详情页的数据. 代码功能: 输入要爬取的页数,自动保存电影的名称以及对 ...

  3. Python 利用requests+BeautifulSoup4编写原生爬虫,爬取电影天堂最新电影,并打造最新电影下载及查询器

    可能有许多人有这样的一种烦恼,当想要查看最近更新的电影时,不得不打开电影天堂的官网进行查询(当然如果你习惯用电影天堂下载电影的话/微笑),当点击了解电影详情的时候,网页往往就切换到了广告页面,很烦有没 ...

  4. python 爬虫实例 电影-Python爬虫教程-17-ajax爬取实例(豆瓣电影)

    Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...

  5. 怎么用python爬豆瓣_python爬虫16 | 你,快去试试用多进程的方式重新去爬取豆瓣上的电影...

    我们在之前的文章谈到了高效爬虫 在 python 中 多线程下的 GIL 锁会让多线程显得有点鸡肋 特别是在 CPU 密集型的代码下 多线程被 GIL 锁搞得效率不高 特别是对于多核的 CPU 来说 ...

  6. Python爬取视频之爱情电影及解密TS文件和两种合并ts的方法

    俗话说,兴趣所在,方能大展拳脚.so结合兴趣的学习才能事半功倍,更加努力专心,apparently本次任务是在视频网站爬取一些好看的小电影,地址不放(狗头保命)只记录过程. 实现功能: 从网站上爬取采 ...

  7. Python3简单爬虫:爬取猫眼评分top100电影

    Python3:用xpath库爬取猫眼评分top100电影 在看<Python3 网络爬虫开发实战中>一书学习时,书中第三章例子用re正则匹配来爬取电影的所需数据,虽然爬取速度快,效率好, ...

  8. 请访问豆瓣电影网站,爬取4~10部电影信息(电影名、导 演、演员、海报url链接,预报片视频链接),并结合GUI界面展现电影信息,并可以根据选择的电影名, 下载指定预告片视频到本地并显示预告片。GUI

    请访问豆瓣电影网站,爬取4~10部电影信息(电影名.导 演.演员.海报url链接,预报片视频链接),并结合GUI界面展现电影信息,并可以根据选择的电影名, 下载指定预告片视频到本地并显示预告片.GUI ...

  9. 爬虫如何翻页 爬取豆瓣排名250电影

    1.爬虫翻页问题: 正在做爬虫练习:爬取豆瓣电影排名前250的电影,但一页只显示排名前25的电影,爬取250部电影就遇到了爬虫翻页的问题.记录下,希望帮助到正在学习的小伙伴! 2.爬虫翻页解决思路: ...

最新文章

  1. css知多少(1)——我来问你来答(转)
  2. Lucene 基础理论 (zhuan)
  3. python set集合_Python字典(dict)和集合(set)
  4. Spring Cloud脚手架源码
  5. 完美世界:笔试题(最小漂流船只数累计,主城之间的最小距离迪杰斯特拉)...
  6. oracle 修改字段类型方法
  7. 日常问题解决记录三:记一次Win10安装Oracle11g后遇到的问题
  8. Spring Roo 之 Mysql 连接
  9. udhcpc 移植和使用
  10. ubuntu系统,网页版音乐播放器无声音
  11. 吃欢天面皮的26种吃法,中国人的福音!
  12. Python爬取BOSS直聘商业分析岗职位描述信息
  13. [附源码]计算机毕业设计JAVA社区生鲜仓库管理系统
  14. 小米(社招)测试开发面经-小米手机管家
  15. 常用逻辑门电路及其运算表达式
  16. android lunch menu,android lunch函数浅析
  17. not in和or 出的问题
  18. 线性代数---魏福义版 第一章习题答案
  19. Android网络请求归纳 HttpUrlConnection| Vollety|OKHttp3|Retrofit2
  20. 十七.C++网络安全学院之CE扫描和基础

热门文章

  1. 计算机音乐必须会各种乐器吗,制作电脑音乐需要注意的几点
  2. 第十章项目质量管理、第十二章人力资源管理
  3. 51单片机仿真例程-led点阵屏
  4. Unity使用FairyGUI切换Spine
  5. 微信小程序开发整理-mp1
  6. VVC/H.266帧间模式(二):Merge mode with MVD (MMVD)
  7. JavaScriptAPI
  8. 豆瓣FM-wordpress
  9. Python的几个基础算法
  10. Java面向对象三大特性(封装、继承、多态)