python爬虫豆瓣电影我不是药神的评价_【Python3爬虫】豆瓣《我不是药神》短评...

工具:

Python3+Pycharm+Chrome

使用到的模块:

(1)requests:用来简单数据请求。(2)lxml:比BeautiSoup更快更强的解析库。(3)pandas:数据处理神器。(4)time:设置爬虫访问间隔。(5)random:生成随机数,配合time使用。(6)tqdm:显示程序运行进度。

步骤:

1、打开豆瓣电影《我不是药神》的短评网页,右键检查或者按F12,然后选择用户名和评论就会显示出对应的代码部分?

2、通过requests模块发送一个get请求,并以utf-8重新编码;然后添加一个交互,判断是否成功获取到资源(状态码为200),输出获取状态。对于爬取下来《我不是药神》的短评内容,我们用lxml来进行解析。在步骤1中找到对应部分的代码,然后右键选择Copy,再选择Copy XPath,就能获取其路径了。爬取下来的短评首尾可能有多余的空格,我们就需要使用字符串中的strip()方法来去掉这些多余的空格。

获取用户名和短评的代码如下:

name=x.xpath(‘//*[@id="comments"]/div[{}]/div[2]/h3/span[2]/a/text()‘.format(i)) content=x.xpath(‘//*[@id="comments"]/div[{}]/div[2]/p/text()‘.format(i))

3、获取到数据之后,我们通过list构造dictionary,然后通过dictionary构造dataframe,并通过pandas模块将数据输出为csv文件,代码如下:

infos={‘name‘:name_list,‘content‘:content_list} data=pd.DataFrame(infos,columns=[‘name‘,‘content‘]) data.to_csv("豆瓣《我不是药神》.csv")

运行截图:

这里我们爬取了十页短评的用户名和内容,借助tqdm模块就能够清晰地看到我们爬取的进度。

?

部分短评截图:

?

最终代码:

1 #爬取电影《我不是药神》的短评

2 importrequests3 from lxml importetree4 from tqdm importtqdm5 importtime6 importrandom7 importpandas as pd8

9 name_list, content_list =[], []10

11

12 defget_content(page):13 url = "https://movie.douban.com/subject/26752088/comments?start=20&limit=20&sort=new_score&status=P&percent_type={}"14 .format(page * 20)15 res =requests.get(url)16 res.encoding = "utf-8"

17 if (res.status_code == 200):18 print("\n第{}页短评爬取成功!".format(page + 1))19 else:20 print("\n第{}页爬取失败!".format(page + 1))21

22 x =etree.HTML(res.text)23 for i in range(1, 21):24 name = x.xpath(‘//*[@id="comments"]/div[{}]/div[2]/h3/span[2]/a/text()‘.format(i))25 content = x.xpath(‘//*[@id="comments"]/div[{}]/div[2]/p/text()‘.format(i))26 name_list.append(name[0])27 content_list.append(str(content[0]).strip())28

29

30 if __name__ == ‘__main__‘:31 for i in tqdm(range(0, 10)):32 get_content(i)33 time.sleep(random.randrange(6, 9))34 infos = {‘name‘: name_list, ‘content‘: content_list}35 data = pd.DataFrame(infos, columns=[‘name‘, ‘content‘])36 data.to_csv("豆瓣《我不是药神》.csv")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值