600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python爬虫豆瓣电影短评_【Python爬虫】BeautifulSoup爬取豆瓣电影短评

python爬虫豆瓣电影短评_【Python爬虫】BeautifulSoup爬取豆瓣电影短评

时间:2024-08-19 07:24:40

相关推荐

python爬虫豆瓣电影短评_【Python爬虫】BeautifulSoup爬取豆瓣电影短评

目的:爬取豆瓣【红海行动】电影的首页短评

步骤:

1、使用BeautifulSoup解析网页

soup = BeautifulSoup(r, 'lxml') // lxml 库解析速度快,也能解析复杂网页

2、描述要爬取的东西在哪

soup.find_all() 或者 soup.select()

3、从标签中获取所需信息,如

something

代码:

# -*- coding: utf-8 -*-

# __author__ = 'Carina'

import requests

import pandas

from bs4 import BeautifulSoup

url = "/subject/26861685/comments"

r = requests.get(url).text

# print(r)

soup = BeautifulSoup(r, 'lxml')

pattern = soup.find_all('p', class_='')

# p1 = soup.select("#comments > div:nth-of-type(1) > ment > p") // Copy Selector

comments = []

for item in pattern:

print(item.string)

comments.append(item.string)

df = pandas.DataFrame(comments)

# 未指定路径时,csv文件同PY文件一个目录

# df.to_csv('comments.csv')

# 指定文件路径,并自动转码

df.to_csv('C:/Users/Carina/Desktop/comments.csv', encoding='utf_8_sig')

提示:

requests是Python 的http库,常用的就是get方法

问题一:

1、class没有值

源码.png

(1)直接2个单引号,soup.find_all('p', ''),同时问题也来了,所有p里面的内容都被输出

另外还有手机端评论的内容输出时显示为None(待研究)

图片.png

图片.png

(2)查找时加上class, pattern = soup.find_all('p', class='')

系统提示语法错误,因为class在python中是保留字(reserved word),不能作为变量名或过程名使用,所以class_应运而生;

即: pattern = soup.find_all('p', class_='')

总结:BeautifulSoup 只认CSS Selector,不认Xpath

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