前言
利用利用requests+xpath爬取豆瓣影评,废话不多说。
让我们愉快地开始吧~
开发工具
**Python版本:**3.6.4
相关模块:
requests模块;
jieba模块;
pandas模块
numpy模块
pyecharts模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
前期准备
1.获取页面内容
# 爬取页面 url\
douban_url = 'https://movie.douban.com/subject/26647117/comments?status=P'\
# requests 发送请求\
get_response = requests.get(douban_url)\
# 将返回的响应码转换成文本(整个网页)\
get_data = get_response.text
2.分析页面内容,获取我们想要的内容
- 浏览器中打开我们要爬取的页面
- 按F12进入开发者工具,查看我们想要的数据在哪里
- 这里我们只要 评论人+评论内
- 分析我们获取的 xpath值
'/html/body/div[3]/div[1]/div/div[1]/div[4]/**div[1]** /div[2]/h3/span[2]/a'
'/html/body/div[3]/div[1]/div/div[1]/div[4]/**div[2]** /div[2]/h3/span[2]/a'
'/html/body/div[3]/div[1]/div/div[1]/div[4]/**div[3]** /div[2]/h3/span[2]/a'
- 通过观察我们发现,这几个xpath只有细微不同,上面加粗的部分已数加的格式改变,所以我们要爬取所有的 commentator(评论者),只需把xpath改为:
'/html/body/div[3]/div[1]/div/div[1]/div[4]/**div**/div[2]/h3/span[2]/a'
即不要后面的序号,当我们查询时,会自动捕获类似的xpath。
- 同样的分析,我们可以得到评论内容的xpath为:
'/html/body/div[3]/div[1]/div/div[1]/div[4]/**div**/div[2]/p'
# (跟在上面代码后)解析页面,并输出获取内容\
a = etree.HTML(get_data)\
commentator = s.xpath('/html/body/div[3]/div[1]/div/div[1]/div[4]/div/div[2]/h3/span[2]/a/text()')\
comment_content = a.xpath('/html/body/div[3]/div[1]/div/div[1]/div[4]/div/div[2]/p/text()')\
# 解析获取内容,去除多余内容\
for i in range(0,len(files)):\
print(commentator[i]+'说:')\
files[i].strip(r'\n')\
files[i].strip(' ')\
print(comment_content[i])
运行结果
Oriol Paulo说: 'Wrath of silence' is quite different from the crime movies I've seen. It's a mix of genres. It's a crime movie,a mystery movie,an action movie,it's also a social realistic movie. Xin Yu Kun plays very well the mix of different genres in this film,and it has a powerful ending.
文文周说: 对于平均水准以上的年轻导演,应毫不吝啬予以鼓励,对于年龄一大把了还言之无物的导演,才要无情打击。
西楼尘说: 老板儿子吃真空羊肉,贪婪绞入碎肉机;屠夫儿子喝污染井水,正义只在电视屏。戳瞎左眼,被戳伤的同乡都能包庇;咬断舌头,被救助的律师却不敢发声。凭蛮力垒不成金字塔,靠假声变不成兔子妈。超人面具如同良心咒,送不回原主;寻子告示像是招魂符,在风里飘摇。真相埋进泥土,藏入山洞,终于再无人知。
#85说: 忻钰坤第二部作品不是一部秀操作的《心迷宫2.0》,要说风格像谁,都像也都不像:凝视山洞的库布里克单点透视、像科恩兄弟一样塑造的神经质杀手、《老男孩》一样的长廊Fight…不一样的是,不只是想告诉你凶手是谁,而是他的选择,以及像手术刀一样划开上层失态、中层失德、底层失语、人间失格的社会症结
一口吃掉小蛋糕说: 结尾太赞,配乐非常喜欢,如果能去掉字幕就好了。从姜武拿起烟灰缸的时候就猜到了结尾。只不过细思极恐,井水为什么越来越咸?为什么那么多人都水肿?村长是知道的,不然不会喝矿泉水。然而这个梗,最后却没有过多的交代
大大肉