Python爬虫豆瓣读书,让你时时刻刻获取书籍的第一手信息

读万卷书行万里路,书是我们获取知识的一大途径,读书可以让人变得精神勃发,让人,能够更加的理解和认识这个世界今天,给大家分享一个代码,让大家能够将豆瓣读书中的所有图书爬取下来,存储在本地准备我们可以进入到豆瓣读书的的分类界面,我们的目标是按照豆瓣图书的标签进行爬取,每一个标签生成一个csv文档,按照书名、作者、评分的格式进行存储我们本章用requests函数进行数据访问,用bs4进行数据的摘取和筛选初始化首先,我们定义一个类,初始化豆瓣读书的网址,书名、作者、评分三个list的信息import
摘要由CSDN通过智能技术生成

读万卷书行万里路,书是我们获取知识的一大途径,读书可以让人变得精神勃发,让人,能够更加的理解和认识这个世界

今天,给大家分享一个代码,让大家能够将豆瓣读书中的所有图书爬取下来,存储在本地

准备

我们可以进入到豆瓣读书的的分类界面,我们的目标是按照豆瓣图书的标签进行爬取,每一个标签生成一个csv文档,按照书名、作者、评分的格式进行存储

在这里插入图片描述
我们本章用requests函数进行数据访问,用bs4进行数据的摘取和筛选

初始化

首先,我们定义一个类,初始化豆瓣读书的网址,书名、作者、评分三个list的信息

import requests
import csv
from bs4 import BeautifulSoup

headers = {
   
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                  'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'}

class DoubanSpider(object):
    def __init__(self):
        self.douban_url = "https://book.douban.com/tag"
        self.book_name_exist = []
        self.book_author = []
        self.book_name = []
        self.book_score = []

由于我们要频繁的从豆瓣爬取,为了防止频繁访问,被豆瓣封IP,这里还初始化了一个IP代理池,代理池的变量名称为proxies,这里不向大家做展示

然后我们要获取主页信息并返回

import requests
import csv
from bs4 import BeautifulSoup

headers = {
   
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                  'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'}

class DoubanSpider(object):
    def __init__(self):
        self.douban_url = "https://book.douban.com/tag"
        self.book_name_exist = []
        self.book_author = []
        self.book_name = []
        self.book_score = []
#  ==================分割线,下面是新增代码====================================
    def enter_first(self):
        """
        获取主页信息并返回
        :return:
        """
        html = requests.get(self.douban_url, headers=headers, proxies=proxies).text
        return html

获取每一个书籍标签

然后,我们就要给每一个标签建立一个csv文档,并爬取数据啦,我们通过观察发现,每一个标签对应的网址其实就是https://book.douban.com/tag/标签
在这里插入图片描述
那我们就可以通过返回的主页信息,来解析出来每一个标签的值,然后进去获取内容就好啦

先通过bs4解析出来tag的内容,然后循环进入每一个tag进行数据的爬取,将爬取的数据存储在已经初始化好的书名、作者、评分三个list当中;最后,以内容为名称创建csv文件,并将三个list的内容写入即可
在这里插入图片描述

import requests
import csv
from bs4 import BeautifulSoup

headers = {
   
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                  'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'}

class DoubanSpider(object):
    def __init__(self):
        self.douban_url = "https://book.douban.com/tag"
        self.book_name_exist = []
        self.book_author = []
        self.book_name = []
        self.book_score = []

    def enter_first(self):
        """
        获取主页信息并返回
        :return:
        """
        html = requests.get(self.douban_url, headers=headers, proxies=proxies).text
        return html
	
#  ==================分割线,下面是新增代码====================================
    def every_label_genery_info(self, page):
        """
        获取每一个分类的html信息
        :param page: 分类页的html信息
        :return:
        """
        html = BeautifulSoup(page, 'lxml')

        div_df = html.find_all('td')
        #  循环遍历每一个标签
        for each_label in div_df:
            # 进入下一个标签之前清空书名、作者、评分三个list
            self.book_name_exist.clear()
            self.book_name.clear()
            self.book_author.clear()
            self.book_score.clear
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值