爬取某网站计算机类图书

news2025/7/20 17:41:31

网页链接:

https://www.ptpress.com.cn/shopping/search?tag=search&orderstr=hot&leve11-75424c57-6dd7-4d1f-b6b9-8e95773c0593

一、为了完成爬取数据,需要进行以下步骤

1.在浏览器中打开页面,选择"计算机"

2.可以看到大量的"计算机"相关书籍,右键点击"检查"

3.刷新页面,点击下一页,查看url

4.点击"Response",查看json格式中的信息,发现与要爬取的书籍信息一致

5.划到最低端可以发现计算机类图书查看页数(570页)

6.查看Date格式

7.根据书籍详情来爬取相关信息

二、代码部分

1.将爬取内容放入打印并放入excel表格中
import requests
import re
import datetime
from time import sleep
import pandas as pd

S = "bookLink"

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                 '(KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44',
}
url = 'https://www.ptpress.com.cn/bookinfo/getBookListForEBTag'
book_info = []
for page in range(1,571):
    data = {
        'bookTagId':'a15a734f-0ae9-41d7-9012-6ef9de2e71c8',
        'page':f'{page}',
        'rows':'18',
        'orderStr':'publish'
    }
    response = requests.post(url,data=data,headers=headers)
    data = response.json()

    author = data["data"]["data"][0]["author"]
    isbn = data["data"]["data"][0]["isbn"]
    publish = datetime.datetime.strptime(
        data["data"]["data"][0]["publishDate"],"%Y%m"
    )
    discountPrice = data["data"]["data"][0]["discountPrice"]
    bookDiscount = data["data"]["data"][0]["bookDiscount"]
    price = data["data"]["data"][0]["price"]
    bookId = data["data"]["data"][0]["bookId"]
    executiveEditor = data["data"]["data"][0]["executiveEditor"]
    bookName = data["data"]["data"][0]["bookName"]
    picPath = data["data"]["data"][0]["picPath"]
    bookLink = "https://www.ptpress.com.cn/shopping/buy?bookId=" + bookId

    book_info.append({
        "author":author,
        "isbn":isbn,
        "publish":publish,
        "discountPrice":discountPrice,
        "bookDiscount":bookDiscount,
        "price":price,
        "bookId":bookId,
        "executiveEditor":executiveEditor,
        "bookName":bookName,
        "picPath":picPath,
        "bookLink":bookLink
    })
    print(f"第{page}页爬取成功!")
    sleep(1)

print(book_info)

# 将数据保存到Excel文件中
df = pd.DataFrame(book_info)
df.to_excel("book_info.xlsx", index=False)
爬取结果:

2.将爬取内容放入打印并放入csv文件中
import requests
import re
import datetime
from time import sleep
import pandas as pd
import csv

S = "bookLink"

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                 '(KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44',
}
url = 'https://www.ptpress.com.cn/bookinfo/getBookListForEBTag'
book_info = []
for page in range(1,571):
    data = {
        'bookTagId':'a15a734f-0ae9-41d7-9012-6ef9de2e71c8',
        'page':f'{page}',
        'rows':'18',
        'orderStr':'publish'
    }
    response = requests.post(url,data=data,headers=headers)
    data = response.json()

    author = data["data"]["data"][0]["author"]
    isbn = data["data"]["data"][0]["isbn"]
    publish = datetime.datetime.strptime(
        data["data"]["data"][0]["publishDate"],"%Y%m"
    )
    discountPrice = data["data"]["data"][0]["discountPrice"]
    bookDiscount = data["data"]["data"][0]["bookDiscount"]
    price = data["data"]["data"][0]["price"]
    bookId = data["data"]["data"][0]["bookId"]
    executiveEditor = data["data"]["data"][0]["executiveEditor"]
    bookName = data["data"]["data"][0]["bookName"]
    picPath = data["data"]["data"][0]["picPath"]
    bookLink = "https://www.ptpress.com.cn/shopping/buy?bookId=" + bookId

    book_info.append({
        "author":author,
        "isbn":isbn,
        "publish":publish,
        "discountPrice":discountPrice,
        "bookDiscount":bookDiscount,
        "price":price,
        "bookId":bookId,
        "executiveEditor":executiveEditor,
        "bookName":bookName,
        "picPath":picPath,
        "bookLink":bookLink
    })
    print(f"第{page}页爬取成功!")
    sleep(1)

print(book_info)

# 将数据保存到csv文件中
df = pd.DataFrame(book_info)
df.to_csv("人民邮电计算机书本信息.csv", index=False)
爬取结果:

3.将爬取内容放入打印并放入MySQL数据库中
import requests
import re
import datetime
from time import sleep
import pandas as pd
import csv
import pymysql

S = "bookLink"

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                 '(KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44',
}
url = 'https://www.ptpress.com.cn/bookinfo/getBookListForEBTag'
book_info = []
for page in range(1,571):
    data = {
        'bookTagId':'a15a734f-0ae9-41d7-9012-6ef9de2e71c8',
        'page':f'{page}',
        'rows':'18',
        'orderStr':'publish'
    }
    response = requests.post(url,data=data,headers=headers)
    data = response.json()

    author = data["data"]["data"][0]["author"]
    isbn = data["data"]["data"][0]["isbn"]
    publish = datetime.datetime.strptime(
        data["data"]["data"][0]["publishDate"],"%Y%m"
    )
    discountPrice = data["data"]["data"][0]["discountPrice"]
    bookDiscount = data["data"]["data"][0]["bookDiscount"]
    price = data["data"]["data"][0]["price"]
    bookId = data["data"]["data"][0]["bookId"]
    executiveEditor = data["data"]["data"][0]["executiveEditor"]
    bookName = data["data"]["data"][0]["bookName"]
    picPath = data["data"]["data"][0]["picPath"]
    bookLink = "https://www.ptpress.com.cn/shopping/buy?bookId=" + bookId

    book_info.append({
        "author":author,
        "isbn":isbn,
        "publish":publish,
        "discountPrice":discountPrice,
        "bookDiscount":bookDiscount,
        "price":price,
        "bookId":bookId,
        "executiveEditor":executiveEditor,
        "bookName":bookName,
        "picPath":picPath,
        "bookLink":bookLink
    })
    print(f"第{page}页爬取成功!")
    sleep(1)

print(book_info)

# 将数据保存到MySQL数据库中
conn = pymysql.connect(host='localhost', user='root', password='your_password', db='your_database', charset='utf8')
cursor = conn.cursor()

# 创建表格booklist
cursor.execute('CREATE TABLE IF NOT EXISTS booklist (author VARCHAR(255), isbn VARCHAR(255), publish DATE, discountPrice FLOAT, bookDiscount FLOAT, price FLOAT, bookId VARCHAR(255), executiveEditor VARCHAR(255), bookName VARCHAR(255), picPath VARCHAR(255), bookLink VARCHAR(255))')

# 将数据插入到表格booklist中
for book in book_info:
    sql = f"INSERT INTO booklist (author, isbn, publish, discountPrice, bookDiscount, price, bookId, executiveEditor, bookName, picPath, bookLink) VALUES ('{book['author']}', '{book['isbn']}', '{book['publish'].strftime('%Y-%m-%d')}', {book['discountPrice']}, {book['bookDiscount']}, {book['price']}, '{book['bookId']}', '{book['executiveEditor']}', '{book['bookName']}', '{book['picPath']}', '{book['bookLink']}')"
    cursor.execute(sql)

# 提交事务
conn.commit()

# 关闭连接
cursor.close()
conn.close()
爬取结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1102461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年淘宝天猫京东双11红包领取口令入口怎么领取使用淘宝天猫京东双十一红包?

2023年淘宝/天猫、京东双十一红包领取活动即将开始! 使用下面提供的淘宝/天猫、京东双11红包口令可以领取淘宝天猫、京东2023年双十一红包; 一、2023年淘宝/天猫双11红包活动时间与规则 1.1、淘宝/天猫双11红包领取时间 2023年10月24日20:00开始至11月…

Numpy(三)Numpy的函数与排序

Numpy(三)Numpy的函数与排序 一、通用函数 *通用函数使得Numpy数组操作用于数组中的每一个函数。它通常用C语言实现,可以提升执行效率。 1.1数学运算函数 1.1.1算数运算函数:通常使用的加、减、乘、除、乘方等数学运算符号 ①…

HCIA --- VLAN实验配置

一、各交换机上配置: 1、各交换机上创建VLAN 2、交换机上的各个接口划分到对应的VLAN中 3、将与交换机、路由器相连的接口创建trunk干道 SW1: [sw1]vlan batch 2 to 3 批量创建VLAN2-3 [sw1]interface Ethernet0/0/1 单独将某个接口划分到对应…

【Release】Photoshop ICO file format plug-in 3.0

【Introduction】 The Photoshop ICO plug-in is a file format plug-in developed for Photoshop, which allows Photoshop to directly read and write ICO format files. Because Photoshop has powerful pixel bitmap editing functions, it has many users and a good us…

Kotlin注释

一、设置注释样式 按需配置 二、单行多行注释 fun main() {// 单行注释println("单行注释") //单行注释/** 多行注释* */println("多行注释") }

<el-drawer>中在添加弹窗,遮罩层被覆盖

添加这个属性 <el-dialog :append-to-body"true"> </el-dialog>

nginx.2——优化和防盗链

1、隐藏版本号 bug多。更新版本速度比较快&#xff0c;所以一旦版本号暴露出去&#xff0c;有可能给对方提供攻击的漏洞。 方法一 vim /usr/local/nginx/conf/nginx.conf 开server_tokens on; 关server_tokens off; 在http大模块中修改&#xff0c;不再server中&#xf…

腾讯云最新优惠活动入口整理分享

腾讯云作为国内知名的云计算服务提供商&#xff0c;一直以来都为广大的个人用户和企业用户提供优质、稳定、安全的云服务。为了帮助大家更好地利用腾讯云&#xff0c;下面为大家整理分享一些腾讯云的最新优惠活动入口&#xff0c;希望能够为大家带来一些帮助和便利。 一、腾讯云…

误删除数据恢复?恢复数据,这3个方法足够!

“我已经遇到很多次数据误删除的情况了&#xff01;每次都要重写文件。但是这次的文件比较紧急&#xff0c;重写肯定来不及了&#xff0c;想问问大家有没有什么误删除数据恢复的方法呀&#xff1f;” 在使用电脑时&#xff0c;很多用户都不可避免会出现误删数据的情况。面对重要…

基于模型预测人工势场的船舶运动规划方法,考虑复杂遭遇场景下的COLREG(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

YOLOv5算法改进(7)— 添加单层注意力机制(包括代码+添加步骤+网络结构图)

前言:Hello大家好,我是小哥谈。注意力机制是近年来深度学习领域内的研究热点,可以帮助模型更好地关注重要的特征,从而提高模型的性能。注意力机制可被应用于模型的不同层级,以便更好地捕捉图像中的细节和特征,这种模型在计算资源有限的情况下,可以实现更好的性能和效率。…

TrustZone

TrustZone技术 让我们从最重要的问题开始&#xff1a;为什么存在TrustZone技术&#xff0c;它防御什么&#xff1f;保护用 C 和 C 编写的大型程序免受黑客攻击可能是一个挑战。内存损坏漏洞是一个常见问题&#xff0c;尽管消除它们是安全工程师的核心目标&#xff0c;但从操作…

AI_Neural Network_Note(一)

Input Data / Feature textimageaudiosensor data For RGB Image 三维矩阵 64 * 64 *3 每个element都对应着一个像素点的颜色值 Definition RGB 图像 ——三个独立的矩阵&#xff08;即三个二维数组&#xff09;&#xff0c;这三个矩阵分别与此图像的红色Red、绿色Green和…

YOLO目标检测——安全帽手套数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;主要应用于监控视频中工作人员是否佩戴安全帽或手套的场景。数据集说明&#xff1a;YOLO目标检测数据集&#xff0c;类别有&#xff1a;手套、头盔、非头盔、人、鞋、背心、赤膊&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富。使用la…

【MyBatis系列】- 什么是MyBatis

【MyBatis系列】- 什么是MyBatis 文章目录 【MyBatis系列】- 什么是MyBatis一、学习MyBatis知识必备1.1 学习环境准备1.2 学习前掌握知识二、什么是MyBatis三、持久层是什么3.1 为什么需要持久化服务3.2 持久层四、Mybatis的作用五、MyBatis的优点六、参考文档一、学习MyBatis知…

LDMOS与VDMOS概述

目录 组会PPT展示&#xff08;10.13&#xff09;LDMOS器件概述VDMOS器件概述前景展望 组会PPT展示&#xff08;10.13&#xff09; LDMOS器件概述 VDMOS器件概述 前景展望

【代码随想录】算法训练营 第四天 第二章 链表 Part 2

24. 两两交换链表中的节点 思路 为了使得头结点的处理不用特殊化&#xff0c;所以依然设置一个虚拟头结点dummy&#xff0c;每次要交换的时候都要判断接下来的两个结点是否为空结点&#xff0c;即nullptr&#xff0c;若非空即可交换&#xff1b; 交换的时候&#xff0c;用一个…

基于springboot实现汉服文化分享平台项目【项目源码+论文说明】

摘要 本论文主要论述了如何使用JAVA语言开发一个汉服文化平台网站 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述汉服文化平台网站的当前背景以及系统开发的…

PostgreSQL性能调优:优化查询和索引设计

随着数据量的增长和业务需求的变化&#xff0c;数据库性能成为了许多企业关注的焦点之一。在众多的数据库管理系统中&#xff0c;PostgreSQL因其稳定性和可靠性而备受青睐。然而&#xff0c;即使是最强大的系统也需要合适的调优&#xff0c;以确保其能够高效地处理大规模数据和…

离线 notepad++ 添加到右键菜单

复制下面代码&#xff0c;修改文件后缀名为&#xff1a;reg Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\NotePad] "Notepad" "Icon""D:\\Notepad\\notepad.exe,0"[HKEY_CLASSES_ROOT\*\shell\NotePad\Command] "D:\…