爬取某网站计算机类图书

2023-10-17 22:04

本文主要是介绍爬取某网站计算机类图书,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网页链接:

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 pdS = "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=" + bookIdbook_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 csvS = "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=" + bookIdbook_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 pymysqlS = "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=" + bookIdbook_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.chinasem.cn/article/228240

相关文章

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

速盾高防cdn是怎么解决网站攻击的?

速盾高防CDN是一种基于云计算技术的网络安全解决方案,可以有效地保护网站免受各种网络攻击的威胁。它通过在全球多个节点部署服务器,将网站内容缓存到这些服务器上,并通过智能路由技术将用户的请求引导到最近的服务器上,以提供更快的访问速度和更好的网络性能。 速盾高防CDN主要采用以下几种方式来解决网站攻击: 分布式拒绝服务攻击(DDoS)防护:DDoS攻击是一种常见的网络攻击手段,攻击者通过向目标网

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

49个权威的网上学习资源网站

艺术与音乐 Dave Conservatoire — 一个完全免费的音乐学习网站,口号是“让每一个人都可以接受世界级的音乐教育”,有视频,有练习。 Drawspace — 如果你想学习绘画,或者提高自己的绘画技能,就来Drawspace吧。 Justin Guitar — 超过800节免费的吉他课程,有自己的app,还有电子书、DVD等实用内容。 数学,数据科学与工程 Codecad

BT天堂网站挂马事件后续:“大灰狼”远控木马分析及幕后真凶调查

9月初安全团队披露bt天堂网站挂马事件,该网站被利用IE神洞CVE-2014-6332挂马,如果用户没有打补丁或开启安全软件防护,电脑会自动下载执行大灰狼远控木马程序。 鉴于bt天堂电影下载网站访问量巨大,此次挂马事件受害者甚众,安全团队专门针对该木马进行严密监控,并对其幕后真凶进行了深入调查。 一、“大灰狼”的伪装 以下是10月30日一天内大灰狼远控的木马样本截图,可以看到该木马变种数量不

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re

java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频)

这是什么系统? 资源获取方式在最下方 java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频) 停车管理信息系统是为了提升停车场的运营效率和管理水平而设计的综合性平台。系统涵盖用户信息管理、车位管理、收费管理、违规车辆处理等多个功能模块,旨在实现对停车场资源的高效配置和实时监控。此外,系统还提供了资讯管理和统计查询功能,帮助管理者及时发布信息并进行数据分析,为停车场的科学

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通