爬虫新手小白的第一次“半独立”爬虫,为什么是“半独立”呢?因为基本的代码块是从其他博客借鉴过来的,在此基础上加入了自己的思考和实现。
(后面的价格获取感觉自己走了很多弯路,想到一步写一步,肯定有其他更直接的方法)
首先是导入需要的库(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
查看页面源代码知书籍信息所在类和标签