欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-01 19:56:34
...

方法与库

所用的库是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选择,看你习惯用哪一种咯
效果如下:
十分钟学会十几行代码爬取豆瓣top250电影并且写入csv文件(非常简单)