python爬取京东畅销榜(计算机类)图书信息(书名,作者,价格),并保存到excel表格

本文记录了一位爬虫新手如何使用Python爬取京东计算机类畅销书籍的书名、作者和价格,并将数据保存到Excel表格的过程。在获取价格时遇到了动态加载的问题,通过分析网络请求解决了这个问题。然而,提取出版社和内容简介仍存在困难,特别是当作者数量不固定和内容简介的请求路径各异时。
摘要由CSDN通过智能技术生成

爬虫新手小白的第一次“半独立”爬虫,为什么是“半独立”呢?因为基本的代码块是从其他博客借鉴过来的,在此基础上加入了自己的思考和实现。

(后面的价格获取感觉自己走了很多弯路,想到一步写一步,肯定有其他更直接的方法)

 

首先是导入需要的库(numpy和matplotlib是打算后续可视化用的)

#-*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup as BS
#import numpy as np
#import matplotlib.pyplot as plt
import pandas as pd
import re

畅销榜书籍一共有5页,每一页链接的不同在于最后的编号,可以用format函数

#初始索引页面链接
index = r"https://book.jd.com/booktop/0-0-0.html?category=3287-0-0-0-10001-{0}#comfort"
#获取页面内容
def readWebs(index):
    try: 
        r = requests.get(index)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        print('请求失败')
#解析网页
def makeSoup(response):
    soup = BS(response,'html.parser')
    return soup
#获取每一页的网页链接
def createPagesList(soup):
    urlList = []
    baseUrl = r"https://book.jd.com/booktop/0-0-0.html?category=3287-0-0-0-10001-{0}#comfort"
    pageindex = soup.select('.p-wrap .p-num a')
    #获取分页中最后一页的页码
    num = int(pageindex[-2].text)
    for i in range(1,num+1,1):
        #生成网页链接
        url = baseUrl.format(str(i))
        urlList.append(url)
    return urlList
#还是获取每一页的网页链接,参数为初始索引链接,避免运行顺序出错
def getUrls(index):
    res = readWebs(index)
    soup = makeSoup(res)
    urllist = createPagesList(soup)
    return urllist

查看页面源代码知书籍信息所在类和标签

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值