当当网上筛选“python爬虫”系列书籍爬取9页数据

2023-10-13 06:59

本文主要是介绍当当网上筛选“python爬虫”系列书籍爬取9页数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这周,我们老师让我们写个爬取电商数据的作业,题目如下
在这里插入图片描述
对此,我选择了在当当网上爬取“python爬虫”的数据,接下来我将附上我写的代码:

# -*- coding: utf-8 -*-
import requests
import csv
from bs4 import BeautifulSoup as bs
#获取网页信息
def request_dandan(url): try:#用户代理headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'}r = requests.get(url,headers=headers)if r.status_code == 200:return r.textexcept requests.RequestException:return None#存放列名
def write_item_to_file():csv_file = open('dangdang.csv', 'w', newline='', encoding="utf-8")writer = csv.writer(csv_file)writer.writerow(['书名','购买链接','纸质书价格','电子书价格','电子书链接','作者','出版时间','出版社'])print('列名已成功放入CSV中')
#解析网页并写入csv文件中
def parse_dangdang_write(html):  csv_file = open('dangdang.csv', 'a', newline='', encoding="utf-8")writer = csv.writer(csv_file)#解析网页soup = bs(html, 'html.parser')class_tag = ['line'+str(x) for x in range(1,61)]for class_tag in class_tag:li = soup.find('li',class_=class_tag)book_name = li.find('a',class_='pic').get('title') # 书名paperbook_price = li.find('span',class_='search_now_price').text  #纸质书价格try:ebook_price = li.find('a',class_='search_e_price').find('i').text  #电子书价格ebook_link = li.find('a',class_='search_e_price').get('href') #电子书链接except:ebook_price = ''ebook_link = ''#detail = li.find('p',class_='detail').text #书的详细介绍book_purchase_link = li.find('a',class_='pic').get('href') #每本书的详细购买链接#book_cover_link = li.find('a',class_='pic').find('img').get('src')#书的封面地址#comment_link = li.find('a',class_='search_comment_num').get('href') #评论地址author = li.find('p',class_='search_book_author').find('span').text # 书的作者public_time = li.find('p',class_='search_book_author').find('span').next_sibling.text[2:]#出版时间public = li.find('p',class_='search_book_author').find('span').next_sibling.next_sibling.text[3:]#出版社writer.writerow([book_name,book_purchase_link,paperbook_price,ebook_price,ebook_link,author,public_time,public])csv_file.close()if __name__=='__main__':write_item_to_file()for page in range (1,10):#爬取9页数据存入csv文件url = 'http://search.dangdang.com/?key=python%C5%C0%B3%E6&act=input&page_index=' + str(page)html = request_dandan(url) #获取网页信息parse_dangdang_write(html)#解析网页并写入csv文件中print('第{}页数据成功放入CSV中'.format(page))

控制台输出如下:
在这里插入图片描述
csv文件(截取一部分):
在这里插入图片描述
在这里插入图片描述
可见,9页数据总共有540条数据(除掉列名)

这个爬虫代码的缺点:
没有使用虚拟ip代理自己的ip,也没有使用cookie保持会话

这篇关于当当网上筛选“python爬虫”系列书籍爬取9页数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201531

相关文章

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

一文详解如何在Python中使用Requests库

《一文详解如何在Python中使用Requests库》:本文主要介绍如何在Python中使用Requests库的相关资料,Requests库是Python中常用的第三方库,用于简化HTTP请求的发... 目录前言1. 安装Requests库2. 发起GET请求3. 发送带有查询参数的GET请求4. 发起PO

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

Python进行PDF文件拆分的示例详解

《Python进行PDF文件拆分的示例详解》在日常生活中,我们常常会遇到大型的PDF文件,难以发送,将PDF拆分成多个小文件是一个实用的解决方案,下面我们就来看看如何使用Python实现PDF文件拆分... 目录使用工具将PDF按页数拆分将PDF的每一页拆分为单独的文件将PDF按指定页数拆分根据页码范围拆分

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应

python 3.8 的anaconda下载方法

《python3.8的anaconda下载方法》本文详细介绍了如何下载和安装带有Python3.8的Anaconda发行版,包括Anaconda简介、下载步骤、安装指南以及验证安装结果,此外,还介... 目录python3.8 版本的 Anaconda 下载与安装指南一、Anaconda 简介二、下载 An

Python自动化处理手机验证码

《Python自动化处理手机验证码》手机验证码是一种常见的身份验证手段,广泛应用于用户注册、登录、交易确认等场景,下面我们来看看如何使用Python自动化处理手机验证码吧... 目录一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取

python安装whl包并解决依赖关系的实现

《python安装whl包并解决依赖关系的实现》本文主要介绍了python安装whl包并解决依赖关系的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、什么是whl文件?二、我们为什么需要使用whl文件来安装python库?三、我们应该去哪儿下

Python脚本实现图片文件批量命名

《Python脚本实现图片文件批量命名》这篇文章主要为大家详细介绍了一个用python第三方库pillow写的批量处理图片命名的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言源码批量处理图片尺寸脚本源码GUI界面源码打包成.exe可执行文件前言本文介绍一个用python第三方库pi