失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python 爬虫实战六:用 selenium 爬取豆瓣电影

python 爬虫实战六:用 selenium 爬取豆瓣电影

时间:2024-04-16 03:11:20

相关推荐

python 爬虫实战六:用 selenium 爬取豆瓣电影

今天帮朋友爬取豆瓣电影的数据,以便进行社交网络分析。

首先打开豆瓣电影,然后点击分类,选择要爬取的特定电影

这里以国产喜剧片为例:依次点击电影、喜剧、中国大陆

然后点击一个小的列表按键

找到我们要爬取的数据

下拉到最底部,有一个加载更多

点击会出现新的电影数据。说明这是一个动态网站,需要使用selenium来爬取。

selenium 是一个非常简单方便的库,用来模拟人进行上述操作。但是需要提前安装好这个库,而且需要安装火狐或者Chrome浏览器的geckodriver,具体的细节可以阅读官方教程,或者其他网上的一些教程。

这里以点击加载更多10次为例,爬取200部电影数据。

代码如下:

# -*- coding: utf-8 -*-"""Created on Sun Dec 20 10:10:41 @author: zxw"""# 引入库from selenium import webdriverimport timeimport pandas as pdstart_url = '/'def get_driver():try:return webdriver.PhantomJS()except Exception:return webdriver.Firefox()driver = get_driver()driver.get(start_url)# 点击“分类”driver.find_element_by_link_text('分类').click()time.sleep(1)# 点击“电影”driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/div[1]/div/div/div[1]/div[1]/ul[1]/li[2]/span').click()time.sleep(1)# 点击“喜剧”driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/div[1]/div/div/div[1]/div[1]/ul[2]/li[3]/span').click()time.sleep(1)# 点击“中国大陆”driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/div[1]/div/div/div[1]/div[1]/ul[3]/li[2]/span').click()time.sleep(1)# 点击“展开列表”driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/div[1]/div/div/div[1]/div[2]/div[2]/div[2]/a[2]/span').click()time.sleep(1)# 设置点击“加载更多”的次数n = 10for i in range(n):driver.find_element_by_class_name('more').click()time.sleep(1)# 爬取数据 title = driver.find_elements_by_class_name('title')rating = driver.find_elements_by_class_name('rating')cast = driver.find_elements_by_class_name('cast')data = pd.DataFrame({"电影":title,"评分":rating,"导演":cast,"主演":cast})data['电影'] = data['电影'].apply(lambda x: x.text)data['评分'] = data['评分'].apply(lambda x: x.text)data['导演'] = data['导演'].apply(lambda x: x.text.split('\n')[0][3:].split('/'))data['主演'] = data['主演'].apply(lambda x: x.text.split('\n')[1][3:].split('/'))# 输出outputpath='c:/Users/zxw/Desktop/修身/与自己/数据科学/爬虫/豆瓣电影/movie.csv' ## 路径需要自己改!data.to_csv(outputpath,sep=',',index=False,header=True,encoding='utf_8_sig')

最终爬取效果如下:

如果觉得《python 爬虫实战六:用 selenium 爬取豆瓣电影》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。