当前位置: 首页 > news >正文

网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(3): 抓取amazon.com价格...


通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码。(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码)
接下来将通过ISBN码去amazon.com获取每本书对应的价格。

一、了解需要和分析网站

通过分析amazon.com得知, 以ISBN码作为搜索关键字可查找到对应的书
结果页码就有这本书的价格,既然价格是以$符号开头,那就可以通过正则表达式得到价格。
 
通过正则表达式匹配价格代码:
def get_price_amazon(isbn):
    base_url = "https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords="
    url = base_url + str(isbn)
    page = urlopen(url)
    soup = BeautifulSoup(page, 'lxml')
    page.close()
    price_regexp = re.compile("\$[0-9]+(\.[0-9]{2})?")
    price = soup.find(text=price_regexp)
    return [isbn, price]

 

上一篇随笔中已经得到了所有书籍的ISBN码,遍历所有的ISBN码传入get_price_amazon()方法即可获取所有书籍的价格,运行结果:

二、将两部分结果数据合并

前两天刚学过数据处理( 利用Python进行数据分析 基础系列随笔汇总),为了练练手,这里 通过pandas将两部分数据合并起来:
book_info_data = pd.read_csv('books.csv')
price_data = pd.read_csv('prices.csv')
result = pd.merge(book_info_data, price_data, on='isbn')
result.to_csv('result.csv', index=False, header=True, columns=['isbn', 'title', 'price'])

 

result.csv文件结果:

 
完整代码请移步github: https://github.com/backslash112/book_scraper_python
Beautiful Soup基础知识: 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(1): 基础知识Beautiful Soup
我们处于大数据时代,对数据处理感兴趣的朋友欢迎查看另一个系列随笔: 利用Python进行数据分析 基础系列随笔汇总
 
接下来打算学习Scrapy库,Scrapy是一个采集工具,它可以帮你大幅降低网页查找和识别工作,轻松采集一个或多个域名的信息。有兴趣的朋友欢迎关注本博客,也欢迎大家留言进行讨论。

大数据,大数据分析、BeautifulSoup,Beautiful Soup入门,数据挖掘,数据分析,数据处理,pandas,网络爬虫,web scraper,python excel,python写入excel数据,python处理csv文件 python操作Excel,excel读写 通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码。(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码) 接下来将通过ISBN码去amazon.com获取每本书对应的价格。 一、了解需要和分析网站 通过分析amazon.com得知,以ISBN码作为搜索关键字可查找到对应的书。 结果页码就有这本书的价格,既然价格是以$符号开头,那就可以通过正则表达式得到价格。通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码。(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码) 接下来将通过ISBN码去amazon.com获取每本书对应的价格。 一、了解需要和分析网站 通过分析amazon.com得知,以ISBN码作为搜索关键字可查找到对应的书。 结果页码就有这本书的价格,既然价格是以$符号开头,那就可以通过正则表达式得到价格。通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码。(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码) 接下来将通过ISBN码去amazon.com获取每本书对应的价格。 一、了解需要和分析网站 通过分析amazon.com得知,以ISBN码作为搜索关键字可查找到对应的书。 结果页码就有这本书的价格,既然价格是以$符号开头,那就可以通过正则表达式得到价格。通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码。(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码) 接下来将通过ISBN码去amazon.com获取每本书对应的价格。 一、了解需要和分析网站 通过分析amazon.com得知,以ISBN码作为搜索关键字可查找到对应的书。 结果页码就有这本书的价格,既然价格是以$符号开头,那就可以通过正则表达式得到价格。通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码。(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码) 接下来将通过ISBN码去amazon.com获取每本书对应的价格。 一、了解需要和分析网站 通过分析amazon.com得知,以ISBN码作为搜索关键字可查找到对应的书。 结果页码就有这本书的价格,既然价格是以$符号开头,那就可以通过正则表达式得到价格。通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码。(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码) 接下来将通过ISBN码去amazon.com获取每本书对应的价格。 一、了解需要和分析网站 通过分析amazon.com得知,以ISBN码作为搜索关键字可查找到对应的书。 结果页码就有这本书的价格,既然价格是以$符号开头,那就可以通过正则表达式得到价格。

转载于:https://www.cnblogs.com/sirkevin/p/5786828.html

相关文章:

  • 河南多校联合训练 F 不是匹配
  • JAVA缓存技术
  • SAP PP 生产订单变更记录保存
  • 目标确定
  • spoj1812-Longest Common Substring II(后缀自动机)
  • 数据分析,了解行业
  • 加速ssh连接
  • nodeJS实战:自定义模块与引入,不同模块的函数传递及回调处理,exports与module.exports(基于nodejs6.2.0)...
  • Tweak 中系统方法写入文件到根目录下面失败
  • 在练习过程中遇到的几点小问题---关于布局
  • 附6 hystrix metrics and monitor
  • nyoj138 找球号(二)_离散化
  • Oracle:sql函数
  • Python中re(正则表达式)模块学习
  • Vim常用命令【转载】
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 2017-09-12 前端日报
  • Median of Two Sorted Arrays
  • Nacos系列:Nacos的Java SDK使用
  • 包装类对象
  • 全栈开发——Linux
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 小程序开发中的那些坑
  • 延迟脚本的方式
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 转载:[译] 内容加速黑科技趣谈
  • 关于Android全面屏虚拟导航栏的适配总结
  • 湖北分布式智能数据采集方法有哪些?
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)视频码率,帧率和分辨率的联系与区别
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .form文件_SSM框架文件上传篇
  • .NET Micro Framework初体验(二)
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET学习教程二——.net基础定义+VS常用设置
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @Autowired和@Resource装配
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @Controller和@RestController的区别?
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • [ linux ] linux 命令英文全称及解释
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • [codevs 1296] 营业额统计