十分钟学会十几行代码爬取豆瓣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选择,看你习惯用哪一种咯
效果如下:
上一篇: 关于bert的那些面试问题
下一篇: 面试问题总结