如何爬取<a>标签内的title=""信息获得评论区的用户名?
老师您好,我目前正在模仿您的案例爬取《肖生克的救赎》中用户名和对应的评论,目前不太清楚如何爬取到用户名信息
import requests from bs4 import BeautifulSoup # 获取豆瓣电影评论信息 headers = {'user-agent': 'my-app/0.0.1'} # 《肖生克的救赎》短评链接 url = "https://movie.douban.com/subject/1292052/comments" movie_comments = [] user_names = [] start = 0 max_start = 40 while start <= max_start: # 访问页面 url = "https://movie.douban.com/subject/1292052/comments?start=" + str(start) + "&limit=20&sort=new_score&status=P" respons = requests.get(url=url, headers=headers) # print(respons.text) # 实现每个页面的抓取 soup = BeautifulSoup(respons.text, 'html.parser') # print(soup.find_all(class_="hd")) for elements in soup.find_all(class_="comment-item"): print(elements.find(class_="short").string) print(elements.find(text="title=")) movie_comments.append(elements.find(class_="short").string) # 修改start参数 start += 20 # for name in movie_comments: # print(name)
分析网页结构后发现用户名在title标签内,但使用text=参数好像不起作用
16
收起
正在回答
2回答
print(elements.find('a')['title']) # 获取用户名称,title是a标签里面的一个key
数据缺失问题,你每次for循环前sleep1-3秒,试一下
weixin_慕设计1308382
2020-07-26 15:42:49
目前另一个问题是数据丢失,使用上述代码连续爬取评论信息时,会发现部分评论没有获取,是需要通过sleep函数间隙爬取吗?
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星