如何爬取<a>标签内的title=""信息获得评论区的用户名?

如何爬取<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=参数好像不起作用http://img1.sycdn.imooc.com//climg/5f1d33310901fd0c20381312.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答
  1. print(elements.find('a')['title'])  # 获取用户名称,title是a标签里面的一个key

  2. 数据缺失问题,你每次for循环前sleep1-3秒,试一下

提问者 weixin_慕设计1308382 2020-07-26 15:42:49

目前另一个问题是数据丢失,使用上述代码连续爬取评论信息时,会发现部分评论没有获取,是需要通过sleep函数间隙爬取吗?

  • DeltaF #1
    如果sleep不行,看一下缺失的数据,有没有什么特性,直接浏览器比对看看。
    2020-07-27 00:48:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师