Python爬虫 -- 抓取电影天堂8分以上电影
看了几天的python语法,还是应该写个东西练练手。刚好假期里面看电影,找不到很好的影片,于是有个想法,何不搞个爬虫把电影天堂里面8分以上的电影爬出来。做完花了两三个小时,撸了这么一个程序。反正蛮简单的,思路和之前用nodejs写爬虫一样。
爬虫的入口从分页的列表开始,比如美剧的列表第一页地址这样: http://www.ygdy8.net/html/gndy/oumei/list_7_1.html
,第二页是http://www.ygdy8.net/html/gndy/oumei/list_7_2.html
,是有规律的,所以就可以遍历所有的页面,分别抓取每页里面的影视资源,再进入每条电影的详情页面,抓取出下载地址,存到文件里。
技术上用的是requests 和 BeautifulSoup两个模块。
具体做法是,先从电影列表中定位每条资源中的IMDB(b)评分大于8分的资源,并且将结果放入movie对象中。
class Movie:
def __init__(self, name, url, score, link):
self.name = name
self.url = url
self.score = score
self.link = link
def __str__(self):
return '%s,\t%s分,\t%s' % (self.name, self.score, self.link)
__repr__ = __str__
# 过滤资源
def filterMovie(url):
resultList = []
soup = getSoup(url)
tables = soup.find_all('table', class_='tbspan')
for table in tables:
nameA = table.find('a', text=re.compile("《"))
td = table.find('td', text=re.compile("IMD"))
if td is not None:
scoreStr = re.findall(r"评分 (.+?)/10", td.text)
if(len(scoreStr) > 0):
try:
score = float(scoreStr[0])
if(score > 8):
name = nameA.text
url = site + nameA['href']
print('url:', url)
print('title:', name)
print('score:', score)
downloadLink = getDownloadLink(url)
movie = Movie(name, url, score, downloadLink)
resultList.append(movie)
except:
print('error !!')
return resultList
其中的getDownloanLink(url)
是进入电影详情页获取下载链接。
def getDownloadLink(url):
soup = getSoup(url)
downloadTd = soup.find('td', attrs={"style": "WORD-WRAP: break-word"})
downloadA = downloadTd.find('a')
return downloadA['href']
然后是将电影信息存入到文件data.txt中。
def saveInfo(movieList):
fileObj = open('data.txt', 'a')
for movie in movieList:
movie_str = str(movie)
print('movie info:', movie_str)
global lineNo
fileObj.write('(' + str(lineNo) + ') ' + movie_str)
fileObj.write('\n')
fileObj.write('———————————')
fileObj.write('\n')
lineNo += 1
fileObj.close()
经过上面的步骤,即可将某一页的电影资源抓取到,并且存入文件中。
程序的主入口,遍历列表即可。目前他们只有155页,就限制这么多页码。
if __name__ == '__main__':
for index in range(156):
index += 1
url = 'http://www.ygdy8.net/html/gndy/oumei/list_7_' + \
str(index) + '.html'
getPageResource(url)
具体代码在github中,传送门,爬到的结果也放入代码仓库中了。有兴趣的,可以下载看看。
Python爬虫 -- 抓取电影天堂8分以上电影的更多相关文章
- Python爬虫----抓取豆瓣电影Top250
有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...
- python 爬虫抓取心得
quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...
- Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储
Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...
- python爬虫抓取哈尔滨天气信息(静态爬虫)
python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip i ...
- python爬虫抓取豆瓣电影
抓取电影名称以及评分,并排序(代码丑炸) import urllib import re from bs4 import BeautifulSoup def get(p): t=0 k=1 n=1 b ...
- Python 爬虫: 抓取花瓣网图片
接触Python也好长时间了,一直没什么机会使用,没有机会那就自己创造机会!呐,就先从爬虫开始吧,抓点美女图片下来. 废话不多说了,讲讲我是怎么做的. 1. 分析网站 想要下载图片,只要知道图片的地址 ...
- python爬虫 抓取一个网站的所有网址链接
sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...
- Python爬虫抓取某音乐网站MP3(下载歌曲、存入Sqlite)
最近右胳膊受伤,打了石膏在家休息.为了实现之前的想法,就用左手打字.写代码,查资料完成了这个资源小爬虫.网页爬虫, 最主要的是协议分析(必须要弄清楚自己的目的),另外就是要考虑对爬取的数据归类,存储. ...
- Python爬虫--抓取糗事百科段子
今天使用python爬虫实现了自动抓取糗事百科的段子,因为糗事百科不需要登录,抓取比较简单.程序每按一次回车输出一条段子,代码参考了 http://cuiqingcai.com/990.html 但该 ...
随机推荐
- System.DateTime.Now的内容
?System.DateTime.Now{2016/10/09 15:19:12} Date: {2016/10/09 0:00:00} dateData: 985948826838121 ...
- JavaScript(复习总结)
一.三个常用对话框 1.alert(""):警告对话框,作用是弹出一个警告对话框(最常用) 2.confirm(""):确定对话框,弹出一个带确定和取消按钮的对 ...
- JStorm注意事项
storm.yaml的配置可以参照defaults.yaml,例如: nimbus.childopts: " -Xms256m -Xmx256m -XX:+UseConcMarkSweepG ...
- 驱动开发学习笔记. 0.01 配置arm-linux-gcc 交叉编译器
驱动开发读书笔记. 0.01 配置arm-linux-gcc 交叉编译器 什么是gcc: 就像windows上的VS 工具,用来编译代码,具体请自己搜索相关资料 怎么用PC机的gcc 和 arm-li ...
- redis与memcached比较
引用自:http://blog.csdn.net/e_wsq/article/details/23551799 最近需要用no-sql数据库来保存大量的数据,插入和查询都比较频繁,相对而言查询更加频繁 ...
- 三级设置页面管理测试demo
#include "PhoneBookWindow.h"#include "xWindow/xWindow.h"#include "hardwareD ...
- Daily Scrum 12.12
今日完成任务: 解决文档上传时TagAssociation的建立异常问题:解决问题页面标签点击卡死的BUG. 发现问题: 文档下载量浏览量显示不正确: 文档打开时全都是同一个PDF: 右侧最佳资源的显 ...
- 获取wifi信息
最近有个项目需要获取手机附近wifi列表,查了许多资料发现,现在只能查到wifi的SSID,并且用到的是私有api,无法通过app store审核,这里记录一下,方便学习,新手勿喷,欢迎大神指教(wi ...
- RHEL查看CPU等机器信息
查看CPU信息: [root@pqsfc072 ~]# cat /proc/cpuinfo 查看CPU型号: [root@pqsfc072 ~]# cat /proc/cpuinfo | grep n ...
- 实现关闭窗口IE不提示兼容火狐
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...