python爬虫豆瓣电影top250结果表格(python爬取豆瓣电影排行榜)
python爬虫抓取电影top20排名怎么写
初步接触python爬虫(其实python也是才起步),发现一段代码研究了一下,觉得还比较有用处,Mark下。?
上代码:
#!/usr/bin/python#coding=utf-8#Author: Andrew_liu#mender:cy"""
一个简单的Python爬虫, 用于抓取豆瓣电影Top前100的电影的名称
Anthor: Andrew_liu
mender:cy
Version: 0.0.2
Date: 2017-03-02
Language: Python2.7.12
Editor: JetBrains PyCharm 4.5.4
"""import stringimport reimport urllib2import timeclass DouBanSpider(object) :
"""类的简要说明
主要用于抓取豆瓣Top100的电影名称
Attributes:
page: 用于表示当前所处的抓取页面
cur_url: 用于表示当前争取抓取页面的url
datas: 存储处理好的抓取到的电影名称
_top_num: 用于记录当前的top号码
"""
def __init__(self):
self.page = 1
self.cur_url = "h0?start={page}filter=type="
self.datas = []
self._top_num = 1
print u"豆瓣电影爬虫准备就绪, 准备爬取数据..."
def get_page(self, cur_page):
"""
根据当前页码爬取网页HTML
Args:
cur_page: 表示当前所抓取的网站页码
Returns:
返回抓取到整个页面的HTML(unicode编码)
Raises:
URLError:url引发的异常
"""
url = self.cur_url ? ? ? ?try:
my_page = urllib2.urlopen(url.format(page=(cur_page - 1) * 25)).read().decode("utf-8") ? ? ? ?except urllib2.URLError, e: ? ? ? ? ? ?if hasattr(e, "code"): ? ? ? ? ? ? ? ?print "The server couldn't fulfill the request."
print "Error code: %s" % e.code ? ? ? ? ? ?elif hasattr(e, "reason"): ? ? ? ? ? ? ? ?print "We failed to reach a server. Please check your url and read the Reason"
print "Reason: %s" % e.reason ? ? ? ?return my_page ? ?def find_title(self, my_page):
"""
通过返回的整个网页HTML, 正则匹配前100的电影名称
Args:
my_page: 传入页面的HTML文本用于正则匹配
"""
temp_data = []
movie_items = re.findall(r'span.*?class="title"(.*?)/span', my_page, re.S) ? ? ? ?for index, item in enumerate(movie_items): ? ? ? ? ? ?if item.find("nbsp") == -1:
temp_data.append("Top" + str(self._top_num) + " " + item)
self._top_num += 1
self.datas.extend(temp_data) ? ?def start_spider(self):
"""
爬虫入口, 并控制爬虫抓取页面的范围
"""
while self.page = 4:
my_page = self.get_page(self.page)
self.find_title(my_page)
self.page += 1def main():
print u"""
###############################
一个简单的豆瓣电影前100爬虫
Author: Andrew_liu
mender: cy
Version: 0.0.2
Date: 2017-03-02
###############################
"""
my_spider = DouBanSpider()
my_spider.start_spider()
fobj = open('/data/moxiaokai/HelloWorld/cyTest/blogcode/top_move.txt', 'w+') ? ?for item in my_spider.datas: ? ? ? ?print item
fobj.write(item.encode("utf-8")+'\n')
time.sleep(0.1) ? ?print u"豆瓣爬虫爬取完成"if __name__ == '__main__':
main()123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
运行结果:?
?
python怎么抓取豆瓣电影url
#!/usr/bin/env python2.7# encoding=utf-8"""
爬取豆瓣电影TOP250 - 完整示例代码
"""import codecsimport requestsfrom bs4 import BeautifulSoup
DOWNLOAD_URL = 'httn.com/top250/'def download_page(url):
return requests.get(url, headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'
}).contentdef parse_html(html):
soup = BeautifulSoup(html)
movie_list_soup = soup.find('ol', attrs={'class': 'grid_view'})
movie_name_list = [] for movie_li in movie_list_soup.find_all('li'):
detail = movie_li.find('div', attrs={'class': 'hd'})
movie_name = detail.find('span', attrs={'class': 'title'}).getText()
movie_name_list.append(movie_name)
next_page = soup.find('span', attrs={'class': 'next'}).find('a') if next_page: return movie_name_list, DOWNLOAD_URL + next_page['href'] return movie_name_list, Nonedef main():
url = DOWNLOAD_URL with codecs.open('movies', 'wb', encoding='utf-8') as fp: while url:
html = download_page(url)
movies, url = parse_html(html)
fp.write(u'{movies}\n'.format(movies='\n'.join(movies)))if __name__ == '__main__':
main()12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
简单说明下,在目录下会生成一个文档存放电影名。python2
Python爬虫实战(1)requests爬取豆瓣电影TOP250
爬取时间:2020/11/25
系统环境:Windows 10
所用工具:Jupyter Notebook\Python 3.0
涉及的库:requests\lxml\pandas\matplotlib\numpy
蛋肥想法: 先将电影名称、原名、评分、评价人数、分类信息从网站上爬取下来。
蛋肥想法: print数据列表后发现电影原名、分类信息等存在不需要的字符,需预先处理;同时因为后续想做一个豆瓣电影TOP250的维度分布图,而同一电影存在多个发行国家、类型(如“法国 美国 / 剧情 动作 犯罪”),为了简(偷)便(懒),这里均取第一个作为记入的数据;最后将数据保存为xlsx。
蛋肥想法: 蛋肥想知道在豆瓣电影TOP250中年份、国家、类型的维度数据,为了练手,使用刚才保存成xlsx的数据,并分别画成雷达图、柱形图、扇形图。
从零开始学Python爬虫(四):正则表达式
Regular Expression, 正则表达式, 种使 表达式的 式对字符串进 匹配的语法规则。
我们抓取到的 源代码本质上就是 个超 的字符串, 想从 提取内容。 正则再合适不过了。
正则的优点: 速度快, 效率 , 准确性 正则的缺点: 新 上 难度有点 。
不过只要掌握了正则编写的逻辑关系, 写出 个提取 内容的正则其实并不复杂
正则的语法: 使 元字符进 排列组合 来匹配字符串
在线测试正则表达式网址:
元字符: 具有固定含义的特殊符号 常 元字符:
量词: 控制前 的元字符出现的次数
贪婪匹配和惰性匹配
这两个要着重的说 下,因为我们写爬 的最多的就是这个惰性匹配。
先看案例
那么接下来的问题是, 正则我会写了, 怎么在python程序中使 正则呢?答案是re模块
re模块中我们只需要记住这么 个功能就 够我们使 了。
下面一个案例,是练习用正则表达式提取豆瓣电影top250的数据并保存,一起来学一下吧。
.利用python获得豆瓣电影前30部电影的中文片名,排名,导演,主演,上映时间
热门频道
首页
博客
研修院
VIP
APP
问答
下载
社区
推荐频道
活动
招聘
专题
打开CSDN APP
Copyright ? 1999-2020, CSDN.NET, All Rights Reserved
打开APP
python 网络爬虫 1.2 获取豆瓣TOP250电影的中英文名、港台名、导演、上映年份、电影分类以及评分,将数据存入文档。 原创
2021-07-19 01:03:15
2点赞
zynaln
码龄8年
关注
题目:
获取豆瓣TOP250电影的中英文名、港台名、导演、上映年份、电影分类以及评分,将数据存入文档。
代码:
输出结果:
文章知识点与官方知识档案匹配
Python入门技能树网络爬虫urllib
201761 人正在系统学习中
打开CSDN APP,看更多技术内容
最新发布 用python爬取豆瓣影评及影片信息(评论时间、用户ID、评论内容)
用python爬取豆瓣影评及影片信息(评论时间、用户ID、评论内容)
继续访问
python
写评论
7
14
2
踩
分享
如图:python爬虫,如何把第一个titel筛选出来,因为有的有两个,有的有一个>?
从目标 html?分析:
1、取 span?节点
2、具有属性 class="title"
3、是第1个节点元素
据此,可以编写 Css?选择器:
运行结果: