在这里分享一个刚刚学习爬虫时自己做的一个小案例,爬取了当当网TOP500的图书信息,包括图书名称、作者名称和出版社的名称。


1.分析网页

url:http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-recent30-0-0-1-1
首先,我们在浏览器里输入以上这个网址这个网址,进入到我们本次将要爬取的网页,然后鼠标右键点击检查。
使用抓包工具,得到将要爬取的数据所在的位置。
解析图书名称的xpath解析式:

//ul/li/div[@class='name']/a/@title

获取图书作者xpath解析式:

//ul/li/div[@class='publisher_info']/a[1]/@title

获取出版社的xpath解析式:

//ul/li/div[@class='publisher_info'][2]/a/text()

2.具体实现

import requests
from lxml import etree
import pymysql
# 连接数据库所需要的参数
DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '215413'
DBNAME = 'librarysysterm'
db = pymysql.connect(host=DBHOST, user=DBUSER, password=DBPASS, database=DBNAME)
cur = db.cursor()  # 声明游标print("连接数据成功")
print("正在插入数据========>")
if __name__ == "__main__":# 定义请求头header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'}# 爬取的网址url = "http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-recent30-0-0-1-%d"# 共爬取网页中对应的20页数据for page in range(21, 26):new_url = format(url%page) # 此处对网址进行分页处理html = requests.get(url=new_url,headers=header)if html.status_code == 200: # 获取状态码,若为200,则代表网页可以正常访问html.encoding = html.apparent_encodingpage_text = html.text# 获取网页源代码tree = etree.HTML(page_text)book_name_list = tree.xpath("//ul/li/div[@class='name']/a/@title") # 在网页源代码中解析出图书名author_list = tree.xpath("//ul/li/div[@class='publisher_info']/a[1]/@title") # 在网页原代码中解析出作者姓名publishing_house = tree.xpath("//ul/li/div[@class='publisher_info'][2]/a/text()") # 在网页源代码中解析出出版社名称for data in zip(book_name_list,author_list,publishing_house):sql = 'INSERT INTO book(bookname,author,bookpress) VALUE (%s,%s,%s)' # 将爬取得到的数据存入数据库value = datacur.execute(sql,value)db.commit() # 提交print("图书信息数据插入成功!")

3.运行结果


运行到此处,爬虫程序就已经结束了,之后到数据库中查看数据的插入情况。


4.数据库展示


可以看到,每本图书的书名,作者以及出版社的信息已经存入到了数据库当中。到此,这个爬虫小案例就结束了。


xpath用来解析网页代码是我认为很适合刚刚学习爬虫的同学来使用,它相对于正则表达式更加简单,也更加方便。
好了,本次的分享就到这里了,如果你感觉我的分享对你有帮助的话,就请贡献一下你宝贵的一键三连可以吗。


爬虫小案例-爬取当当网TOP500的图书并将数据存入数据库相关推荐

  1. 爬虫百战(一):爬取当当网Top500本五星好评书籍

    爬取当当网Top500本五星好评书籍 ==实战前提:== 准备工作 撸代码 成果展示 实战前提: 掌握requests库的使用 熟悉re库,正则表达式的简单使用 可参考我的另外两篇博客进行学习 准备工 ...

  2. python爬虫案例-爬取当当网数据

    输入关键字,爬取当当网中商品的基本数据,代码如下: 1 # Author:K 2 import requests 3 from lxml import etree 4 from fake_userag ...

  3. 在当当买了python怎么下载源代码-爬虫实战:爬取当当网所有 Python 书籍

    来源:公众号-极客猴 出处: 本文主要讲解如何利用urllib.re.BeautifulSoup 这几个库去实战,爬取当当网所有 Python 书籍. 1 确定爬取目标 任何网站皆可爬取,就看你要不要 ...

  4. python爬虫什么书好_python爬虫入门06 | 爬取当当网 Top 500 本五星好评书籍

    来啦,老弟 image 我们已经知道怎么使用 Requests 进行各种请求骚操作 也知道了对服务器返回的数据如何使用 正则表达式 来过滤我们想要的内容 - 那么接下来 我们就使用 requests ...

  5. 请用Python写一个爬虫程序,爬取当当网图书畅销榜数据

    好的,下面是一个简单的 Python 爬虫代码,可以爬取当当网图书畅销榜数据: import requests from bs4 import BeautifulSoupurl = "htt ...

  6. python爬取InterfaceLIFT壁纸,下载到本地,数据存入数据库(mysql,mongodb)

    github地址 欢迎star,欢迎拍砖 适用pythopn版本 Python 2.7 or Python 3.6 只在这两个版本之下测试过,正常运行 项目文件说明 main.py 主要文件 mysq ...

  7. Python实战 | 爬取当当网 TOP500 畅销书

    目标网页:当当网书籍畅销榜 http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-24hours-0-0-1-1 爬取结果: 代码: ...

  8. 爬虫小案例 爬取笑话 xpath

    import requests from lxml import etree# 写入文件 def write_file(art):with open("笑话.txt", " ...

  9. 爬虫小案例 爬取百度贴吧赵丽颖图片案例 xpath 美丽汤

    美丽汤版本: import requests from bs4 import BeautifulSoup import os from hashlib import md5def get_html(u ...

最新文章

  1. Amazon SageMaker和NVIDIA NGC加速AI和ML工作流
  2. 【Android UI设计与开发】第04期:引导界面(四)仿人人网V5.9.2最新版引导界面
  3. android108 内存分配
  4. 操作系统原理: 操作系统概述
  5. 发现四川科技馆在线网站修改用户设置页面的一个问题
  6. 【转】IPSec的原理
  7. Python中的特殊方法、属性和迭代器
  8. mysql监视器MONyog的使用
  9. java mysql图书馆管理系统源码+论文
  10. 修改XP登陆界面教程
  11. 查看oracle是否删除干净,n你好,之前卸载了oracle,该怎么查看以前Oracle卸载干净没?...
  12. 手把手教你制作gif动图,一分钟轻松学会
  13. hdu 5064 Find Sequence(单调性优化DP)
  14. 100047. 【NOIP2017提高A组模拟7.14】基因变异
  15. 拼接字符串并以逗号隔开
  16. 小米android通知栏图标不显示,MIUI开发版更新:已修复原生样式下部分通知图标不显示的问题...
  17. stc89c52c语言开发,stc89c52烧写程序
  18. mapbox-gl提升建筑渐变效果(视频)
  19. 升级 Mellanox ConnectX-3 EN 10/40 Gbps 网卡固件
  20. #9733;为什么不要和“穷人”做朋友?

热门文章

  1. JAVA必备—java流,考验你的想象力
  2. Linux命令行字体变大变小,如何更改Linux控制台字体类型和大小,
  3. 计算机网络_填空题(一)
  4. svc预测概率_利用Python高概率预测英雄联盟胜负,分析了1982场才得出的数据!...
  5. 荣耀v10Android9新功能,荣耀V10拿下安卓9.0之后,续航明显提升:体验分享
  6. 虚拟同步发电机自适应控制策略复现
  7. 前瞻产业研究院:仿制药行业发展现状分析
  8. python获取字符串首字母_Python字符串常用操作命令
  9. Java修改图片大小尺寸图片缩放(URL图片和本地图片)
  10. WCDMA网络架构及通讯协议