前言

python数据抓取,得到多页的图书各个维度的数据,并对某些字符串做了数据处理,然后用pandas模块将数据存储为excel文件。

1.源代码

代码如下:
import requests
from bs4 import BeautifulSoup
import pandas as pdCookie = '__permanent_id=20220513170904104321665604699593064; __ozlvd=1652433083; dest_area=country_id%3D9000%26province_id%3D111%26city_id%20%3D0%26district_id%3D0%26town_id%3D0; MDD_permanent_id=20220514110040183284142509428454779; MDD_province_str=%E5%8C%97%E4%BA%AC; MDD_province_id=111; MDD_city_str=%E5%8C%97%E4%BA%AC%E5%B8%82; MDD_city_id=1; MDD_area_str=%E4%B8%9C%E5%9F%8E%E5%8C%BA; MDD_area_id=1110101; secret_key=efcb6c415140cae4f4c0a166ed773e7d; ddscreen=2; pos_6_start=1653042630185; pos_6_end=1653042630438; bind_cust_third_id=ocil5uKns4SFMnjuJsmygDnUQfWQ; tx_open_id=oqh4kuCwpq6-aPSHG-lYsnfn-3DM; tx_nickname=UmV0cmVhdGluRw==; tx_figureurl=https://thirdwx.qlogo.cn/mmopen/vi_32/kq93oibR8fZeMg5EIjQiaUbaFVCAepVuiawVCrlvtYNSSSEfs88hTlNQnZVP4iaAJB5TiboTt9xz09zh4rRiaHEpvsBQ/132; bind_mobile=18584453761; USERNUM=S0BYivTI/XkrpOVp7wxu+Q==; login.dangdang.com=.AYH=&.ASPXAUTH=bglMFMAotILDL+d2saPYtHsgm8l4SjYxhnmav2+n5eLJmeDOKipaKA==; order_follow_source=-%7C-O-123%7C%2311%2C11%7C%23login_third_qq%2Clogin_third_weixin%7C%230%2C0%7C%23%2C; dangdang.com=email=MTg1ODQ0NTM3NjE1MjAyN0BkZG1vYmlscGhvbmVfX3VzZXIuY29t&nickname=UmV0cmVhdGluRw==&display_id=2430960574019&customerid=MMblqHaxKqSWrLrHb/ftbQ==&viptype=&show_name=185%2A%2A%2A%2A3761; ddoy=email=1858445376152027%40ddmobilphone__user.com&nickname=RetreatinG&validatedflag=0&agree_date=1; sessionID=pc_718ab82bae1d1b0a0e4092a232479cbbb4424b1ed467604ac95ee3cb10764fc3; bind_custid=771659450; __visit_id=20220521184656643343611246104875436; __out_refer=; LOGIN_TIME=1653130620425; __rpm=...1653048077521%7C...1653130641546; __trace_id=20220521185722198192659899464462250'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36','Cookie': Cookie}def dangdang(page):url = "http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-year-2021-0-1-{}".format(page)#    http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-year-2021-0-1-2res = requests.get(url, headers=headers)res.raise_for_status()res.encoding = res.apparent_encoding# print(res.text)soup = BeautifulSoup(res.text, "html.parser")# print(soup.prettify())# print("*" * 100)ranks = soup.find("ul", class_="bang_list clearfix bang_list_mode").find_all("div", class_="list_num")# print(ranks)rank = []for rankk in ranks:rankk = rankk.get_text()# print(rankk)rank.append(rankk)# print(rank)# print("*" * 100)names = soup.find("ul", class_="bang_list clearfix bang_list_mode").find_all("div", class_="name")# print(names)name = []for namee in names:namee = namee.a.get("title")# print(namee)name.append(namee)# print(name)# print("*" * 100)prices = soup.find("ul", class_="bang_list clearfix bang_list_mode").find_all("div", class_="price")# print(prices)price = []for pricee in prices:pricee = pricee.span.stringpricee = pricee[1:]# print(pricee)price.append(pricee)# print(price,len(price))# print("*" * 100)discounts = soup.find("ul", class_="bang_list clearfix bang_list_mode").find_all("span", class_="price_s")# print(discounts)discount = []for discountt in discounts:discountt = discountt.get_text()discountt = discountt.strip("折")discount.append(discountt)# print(discountt)# print(discount)# print("*" * 100)comments = soup.find("ul", class_="bang_list clearfix bang_list_mode").find_all("div", class_="star")# print(comments)comment = []for commentt in comments:commentt = commentt.a.get_text()commentt = commentt.strip("条评论")# print(commentt)comment.append(commentt)# print(comment)# print("*" * 100)e_books = soup.find("ul", class_="bang_list clearfix bang_list_mode").find_all("p", class_="price_e")# print(e_books,len(e_books))# print(e_books[6])e_book = []for e_bookk in e_books:if e_bookk == '<p class="price_e"></p>':e_bookk = None# print(e_bookk)e_book.append(e_bookk)else:e_bookk = e_bookk.get_text().strip("电子书:¥")# print(e_bookk)e_book.append(e_bookk)# print(e_book)# print("*" * 100)#tuijians = soup.find("ul", class_="bang_list clearfix bang_list_mode").find_all("span", class_="tuijian")# print(tuijians)tuijian = []for tuijiann in tuijians:tuijiann = tuijiann.get_text()tuijiann = tuijiann.strip("推荐")# print(tuijiann)tuijian.append(tuijiann)# print(tuijian,len(tuijian))# print("*" * 100)books_url = soup.find("ul", class_="bang_list clearfix bang_list_mode").find_all("div", class_="pic")# print(books_url,len(books_url))popularity = []for book_urll in books_url:book_urll = book_urll.a.get('href')# print(book_urll)re = requests.get(book_urll, headers=headers)# print(re.status_code)# if re.status_code==404:# popularityy=' 'try:soupp = BeautifulSoup(re.text, "html.parser")# print(soupp.prettify())popular = soupp.select('#collect_left')popularityy = popular[0].get_text()popularityy = popularityy.lstrip('收藏商品(').rstrip('人气)    ')# print(popularityy)popularity.append(popularityy)# print(popularity, len(popularity))# print("*" * 100)except:popularityy = ''popularity.append(popularityy)# print(popularity, len(popularity))# print("*" * 100)data = {'排名': rank, '书名': name, '折扣': discount, '折扣价': price, '电子书价格': e_book, '评论数': comment, '推荐率': tuijian,'人气': popularity}data = pd.DataFrame(data)return dataall_data = pd.DataFrame()
page = int(input('请输入要爬取的页数:'))
for i in range(page):dangdang(i)all_data = pd.concat([all_data, dangdang(i + 1)])
all_data.to_excel('./当当网图书畅销榜.xlsx', index=False)
print('爬取完成!')

2.保存数据

结果如下:


总结

为了防止被反爬,需要登录当当网并加上cookie参数就好了,隔一段时间,就需要更新cookie参数。

python爬虫案例(2)相关推荐

  1. python爬虫简单实例-最简单的Python爬虫案例,看得懂说明你已入门,附赠教程

    原标题:最简单的Python爬虫案例,看得懂说明你已入门,附赠教程 这是最简单的Python爬虫案例,如果你能看懂,那么请你保持信心,因为你已经入门Python爬虫,只要带着信心和努力,你的技术能力在 ...

  2. python爬虫案例-Python爬虫案例集合

    原标题:Python爬虫案例集合 urllib2 urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) 在python2.x里 ...

  3. python爬虫案例——百度贴吧数据采集

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python爬虫案例--百度贴吧数据采集 通过python实现百度贴吧页面的内容采集是相对来说比较容易的,因为百度贴吧不需要登陆,不需要coo ...

  4. python爬虫案例——糗事百科数据采集

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python爬虫案例--糗事百科数据采集 通过python实现糗事百科页面的内容采集是相对来说比较容易的,因为糗事百科不需要登陆,不需要coo ...

  5. python爬虫案例——csdn数据采集

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python爬虫案例--csdn数据采集 通过python实现csdn页面的内容采集是相对来说比较容易的,因为csdn不需要登陆,不需要coo ...

  6. [Python爬虫案例]-中国古诗网

    [Python爬虫案例]-中国古诗网 看懂代码,你需要相关知识 爬虫必备知识 只是想得到目标的话,直接运行就好了 import requests import re import jsondef pa ...

  7. Python 爬虫案例(二)--附件下载

    Python 爬虫案例(二) 此篇文章将爬取的网站是:http://www.warrensburg-mo.com/Bids.aspx (有时候打开不一定会有标书,因为标书实时更新) 类型跟上一篇相似, ...

  8. python爬虫案例_推荐上百个github上Python爬虫案例

    现在学生都对爬虫感兴趣,这里发现一些好的github开源的代码,分享给各位 1.awesome-spider 该网站提供了近上百个爬虫案例代码,这是ID为facert的一个知乎工程师开源的,star6 ...

  9. python爬虫案例-Python3爬虫三大案例实战分享

    课程名称: [温馨提示:1. 你可以在PC端浏览器或者微信收藏该页面,以方便你快速找到这个课程:2. 课程相关资料可在课程PC端公告查看下载:3.加入课程后,点(课时)列表即可观看视频 ] 课程须知: ...

  10. 【Python爬虫案例教学】采集某网站壁纸,实现壁纸自由

    前言 (。・∀・)ノ゙嗨 大家好,这里是小圆 现在开始每天都给大家 分享些关于python爬虫的案例教学 从最简单的开始 - 采集图片壁纸 今天就来扒拉这个优质的壁纸网站~ 网址

最新文章

  1. 机器学习算法集锦:从贝叶斯到深度学习及各自优缺点
  2. 旋转矩阵与欧拉角之间的转换
  3. numpy pytorch 接口对应_用树莓派4b构建深度学习应用(四)PyTorch篇
  4. 深度解密Go语言之scheduler
  5. 为何大部分人成不了技术专家?
  6. 如何设置CentOS 7获取动态及静态IP地址
  7. 写你自己的MVC框架
  8. 查看win激活状态的命令
  9. devops流程工具_您的DevOps工作流程依赖哪些工具?
  10. Linux进程间通信[转]
  11. 11.这就是搜索引擎:核心技术详解 --- 搜索引擎缓存机制
  12. PAIP.paip.手机离线ROOT过程总结
  13. hadoop 如何连beeline_Hadoop家族新成员Hbase重磅来袭
  14. R统计-PCA/PCoA/db-RDA/NMDS/CA/CCA/DCA等排序分析教程
  15. html中加入标题居中,在html标题标记中居中的div元素
  16. android中抽屉控件,Android自定义控件:类QQ抽屉效果
  17. Intel 助力移动云百万 IOPS 云硬盘,打造极速云存储体验
  18. “士兵突击”职场攻略心法
  19. ai个性化 国庆 头像 合成
  20. 手机浏览网页或打开App时莫名弹出支付宝领红包界面的原因及应对措施

热门文章

  1. 书籍《图说区块链》读后感
  2. 腾讯云服务器无限流量,腾讯云服务器有流量限制吗,您看仔细了
  3. 一文带你了解常见的数据指标都有哪些【数据分析】
  4. java 按 大写字母_用大写字母拆分字符串
  5. 吃PHP小孩智力好,毁掉孩子智商的4类食物  别再给孩子吃了!
  6. Windows照片查看器
  7. Mac系统瘦身存储清理
  8. Java实现数字大写
  9. 查询数据库各种历史记录
  10. springboot+微信小程序基于微信小程序的高校学生疫情在校封闭管理系统毕业设计源码240904