您的位置:首页 > 编程语言

十分钟学会十几行代码爬取豆瓣top250电影并且写入csv文件(非常简单)

2020-03-25 19:03 239 查看

方法与库

所用的库是request_html,用过request_html库都知道这个库是真的好用,比beautifulsoup+request的组合好用多了,第二是csv,因为我们要写入嘛,话不多说上代码!

from requests_html import HTMLSession
import csv

session = HTMLSession()
kv={'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
}

csv_file = open('豆瓣top250.csv','w',newline='')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['名称','评分','简短介绍'])
#print("{:^10}{:^15}\t{:^20}\t{:^20}".format("排名","电影名称","豆瓣评分","简短介绍"))
for j in range(0,245,25):
r = session.get('https://movie.douban.com/top250?start={}&filter='.format(j),headers = kv)

for i in range(1,26):
film_name  = r.html.find('#content > div > div.article > ol > li:nth-child({}) > div > div.info > div.hd > a > span.title'.format(i),first = True).text
film_score = r.html.find('#content > div > div.article > ol > li:nth-child({}) > div > div.info > div.bd > div > span.rating_num'.format(i),first  = True).text
film_interest_words = r.html.find('#content > div > div.article > ol > li:nth-child({}) > div > div.info > div.bd > p.quote > span'.format(i),first = True).text
#print["{:^10}\t{:^15}\t{:^20}\t{:^20}".format(str(a),film_name,film_score,film_interest_words)for a in range(1,245)]
csv_writer.writerow([film_name,film_score,film_interest_words])

print('爬取成功!')

这里的选择器是css选择器,request_html还提供xpath选择,看你习惯用哪一种咯
效果如下:

  • 点赞
  • 收藏
  • 分享
  • 文章举报
白敲人 发布了5 篇原创文章 · 获赞 4 · 访问量 143 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐