一个简单的爬虫:爬取豆瓣的热门电影的信息

 1 #! /usr/bin/env python
 2 # -*- coding=utf-8 -*-
 3 
 4 import requests
 5 import json
 6 import re
 7 
 8 f = open('dianying.txt','a')
 9 count = 0 #用于记录编号,也可不用
10 def write__(htm):
11     #with open('title.txt', 'a') as fff:
12     titl = re.findall('data-tit(.*?)data-enough',htm.text,re.S)  #找到data-tit和data-enough之间的所有匹配串,titl是列表类型
13     for each in titl:     #依次迭代列表中元素,针对每一组元素 分别匹配相应的字段 ,并将字段内容写入文本
14         #fff.write(each + "\n")
15         info = {}
16         info['title'] = re.search('le="(.*?)"',each,re.S).group(1) #匹配值的第一个
17         info['year'] = re.search('data-release="(.*?)" data-rate',each,re.S).group(1)  #匹配值的第一个
18         info['Rating']= re.findall('data-rate="(.*?)" data-star',each,re.S)[0] #返回匹配元素(列表)中的一个值,实际上只有 一个
19         info['duration'] = re.findall('data-duration="(.*?)" data-region',each,re.S)[0]
20         info['region'] = re.findall('data-region="(.*?)" data-director',each,re.S)[0]
21         info['actor'] = re.findall('data-actors="(.*?)" data-intro',each,re.S)[0]
22         global count #全局的定义
23         count = count + 1
24         f.write('%s\n' %str(count))
25         #print(info['title'],info['year'],info['Rating'],info['time'] ,info['reg'],info['act'] )
26         f.writelines(u'电影名:'+info['title'] + '\n')
27         f.writelines(u'主演:'+info['actor'] + '\n')
28         f.writelines(u'电影地区:' + info['region']+'\n')
29         f.writelines(u'上映年份:' + info['year']+'\n')
30         f.writelines(u'电影时长:' + info['duration']+'\n')
31         f.writelines(u'评分:' + info['Rating']+'\n\n')
32     f.close()
33 def getremen():
34     url = 'http://movie.douban.com/'
35     html = requests.get(url,headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0'})
36     html.encoding = 'uft-8'
37     # print( html.text)
38     write__(html)
39 if __name__ == "__main__":
40     getremen()

猜你喜欢

转载自www.cnblogs.com/carey9420/p/11991091.html