python爬虫练习之爬取豆瓣读书所有标签下的书籍信息

第一步,爬取所有图书标签及分类

到达图书标签页,分类浏览,第一步需要爬取所有分类及其分类下的所有标签
并用dict存储

豆瓣图书标签的链接

这里写图片描述

需要解析的内容
这里写图片描述

1.bs4解析

import requests
from bs4 import BeautifulSoup

url = 'https://book.douban.com/tag/?view=type'
tag_dict = {}

def get_dict():             #接口,提供这个标签字典
    return tag_dict

r = requests.get(url)
soup = BeautifulSoup(r.text,'lxml')
title = soup.select('div div a h2')     #第一步找到h2标签,因为更细致,a标签就找不到
#然后通过h2标签找到爷爷级标签,就是div盒子了
for i in title:
    a = i.find_parent()     #找到父亲a标签
    div = a.find_parent()   #找到父亲div
    tag_title = a.select('h2')[0].get_text()[:2]    #找到h2标签取出内容并切片取出前两个字
    tags = div.select('tr td a')    #找到td中的a标签
    tag_list = []
    for j in tags:
        tag_list.append(j.get_text())   #循环取出a标签中的内容
    tag_dict[tag_title] = tag_list

for i in tag_dict:
    print(i+':',end='')
    print(tag_dict[i])
-------------------------------------------------------------------------------
文学 ['小说', '外国文学', '文学', '随笔', '中国文学', '经典', '日本文学', '散文', '村上春树', '诗歌', '童话', '儿童文学', '古典文学', '王小波', '名著', '杂文', '余华', '张爱玲', '当代文学', '钱钟书', '外国名著', '鲁迅', '诗词', '茨威格', '米兰·昆德拉', '杜拉斯', '港台']
流行 ['漫画', '推理', '绘本', '青春', '东野圭吾', '科幻', '言情', '悬疑', '奇幻', '武侠', '日本漫画', '韩寒', '耽美', '推理小说', '亦舒', '网络小说', '三毛', '安妮宝贝', '郭敬明', '穿越', '阿加莎·克里斯蒂', '金庸', '轻小说', '科幻小说', '青春文学', '几米', '魔幻', '幾米', '张小娴', 'J.K.罗琳', '古龙', '高木直子', '沧月', '校园', '落落', '张悦然']
文化 ['历史', '心理学', '哲学', '传记', '文化', '社会学', '艺术', '设计', '社会', '政治', '建筑', '宗教', '电影', '政治学', '数学', '中国历史', '回忆录', '思想', '国学', '人文', '人物传记', '音乐', '艺术史', '绘画', '戏剧', '西方哲学', '二战', '军事', '佛教', '近代史', '考古', '自由主义', '美术']
生活 ['爱情', '旅行', '生活', '成长', '心理', '励志', '女性', '摄影', '职场', '教育', '美食', '游记', '灵修', '健康', '情感', '两性', '人际关系', '手工', '养生', '家居', '自助游']
经管 ['经济学', '管理', '经济', '商业', '金融', '投资', '营销', '创业', '理财', '广告', '股票', '企业史', '策划']
科技 ['科普', '互联网', '编程', '科学', '交互设计', '用户体验', '算法', '科技', 'web', 'UE', '交互', '通信', 'UCD', '神经网络', '程序']

2.re解析

import requests
import re

url = 'https://book.douban.com/tag/?view=type'
tag_dict = {}

def get_dict():             #接口,提供这个标签字典
    return tag_dict

r = requests.get(url).text
tag_title = re.findall('<a name="(.*?)".*?tag-title-wrapper', r, re.S)  #直接找到类别
tags = re.findall('table.*?tbody>(.*?)</tbody',r,re.S)  #找到每个div里tbody的内容
tags.remove(tags[0])
for n,i in enumerate(tags):
    tag_list = re.findall('">(.*?)</a><b',i,re.S)   #在tbody里找到每个a标签的内容
    tag_dict[tag_title[n]] = tag_list

for i in tag_dict:
    print(i,tag_dict[i])
-------------------------------------------------------------------------------------------
文学:['小说', '外国文学', '文学', '随笔', '中国文学', '经典', '日本文学', '散文', '村上春树', '诗歌', '童话', '儿童文学', '古典文学', '王小波', '名著', '杂文', '余华', '张爱玲', '当代文学', '钱钟书', '外国名著', '鲁迅', '诗词', '茨威格', '米兰·昆德拉', '杜拉斯', '港台']
流行:['漫画', '推理', '绘本', '青春', '东野圭吾', '科幻', '言情', '悬疑', '奇幻', '武侠', '日本漫画', '韩寒', '耽美', '推理小说', '亦舒', '网络小说', '三毛', '安妮宝贝', '郭敬明', '穿越', '阿加莎·克里斯蒂', '金庸', '轻小说', '科幻小说', '青春文学', '几米', '魔幻', '幾米', '张小娴', 'J.K.罗琳', '古龙', '高木直子', '沧月', '校园', '落落', '张悦然']
文化:['历史', '心理学', '哲学', '传记', '文化', '社会学', '艺术', '设计', '社会', '政治', '建筑', '宗教', '电影', '政治学', '数学', '中国历史', '回忆录', '思想', '国学', '人文', '人物传记', '音乐', '艺术史', '绘画', '戏剧', '西方哲学', '二战', '军事', '佛教', '近代史', '考古', '自由主义', '美术']
生活:['爱情', '旅行', '生活', '成长', '心理', '励志', '女性', '摄影', '职场', '教育', '美食', '游记', '灵修', '健康', '情感', '两性', '人际关系', '手工', '养生', '家居', '自助游']
经管:['经济学', '管理', '经济', '商业', '金融', '投资', '营销', '创业', '理财', '广告', '股票', '企业史', '策划']
科技:['科普', '互联网', '编程', '科学', '交互设计', '用户体验', '算法', '科技', 'web', 'UE', '交互', '通信', 'UCD', '神经网络', '程序']

2.未完待续

猜你喜欢

转载自blog.csdn.net/q1694222672/article/details/81171675