爬取豆瓣读书-豆瓣成员常用的标签(Python爬虫实战)

前两篇博客,我们介绍了如何对豆瓣读书历史记录进行抓取,这一篇博客是一个收尾工作。
传送门:

本文适用于利用标签系统(Tagging System)对豆瓣读书用户的读书兴趣建模,对用户进行相关推荐研究工作。

import requests
from bs4 import BeautifulSoup

headers = {
    "Host": "book.douban.com",
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}

def GetBookTags(link):
    res=requests.get(link,headers=headers,allow_redirects=False)
    res.encoding='utf-8'
    soup=BeautifulSoup(res.text)
    #获取书籍标签
    tags=[]
    for tag in soup.select('a[class="tag"]'):
        tags.append(str(tag.text))
    print(tags)

if __name__=="__main__":
    url=r"https://book.douban.com/subject/1209078/"
    GetBookTags(url)

当然,除了通过直接爬取豆瓣用户常用的标签来构建标签系统以外,我们还可以通过对书籍的介绍文本内容进行关键词提取(常见算法有TextRank,LDA和HMM),感兴趣的朋友可以去学习相关算法的原理和使用。

这里给出一个TextRank算法提取书籍介绍文本的代码仅供参考,使用jieba中文开源工具进行关键词抽取。代码如下:

#导入jieba工具包
import jieba.analyse

#课程介绍文本-爬取方法不难实现,可参照本文第一个代码
text="你的博文爬取豆瓣读书书籍(豆瓣成员常用的标签)标签-Python爬虫实战因涉及“版权不明”, 审核未通过,您可以修改相关内容后再次发布。健康和谐的网络环境,需要我们共同维护,如有问题请联系客服。"

#1.分词
fenci_text = jieba.cut(text)
#2.去掉停用词
textrank=jieba.analyse.textrank
stopwords = {}.fromkeys([line.rstrip() for line in open('stop_words.txt')])#stop_words.txt是一个停用词表,在nlp处理中很常见,可以自行搜索下载
final=""
for word in fenci_text:
    if word not in stopwords:
        final=final+word
#提取关键词
keywords_TR=textrank(final, topK=20)#top-k的值可以按照实际效果进行设置,这里采用K=20
print(keywords_TR)








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值