Python获取电子书籍数据-以当当网为例

(一)以css方式获取

import requests,csv
from bs4 import BeautifulSoup
import codecs   #自然语言编码转换库def main():res=requests.get("http://book.dangdang.com/20180504_by11")res.encoding = res.apparent_encoding  #获得真实编码soup=BeautifulSoup (res.text,'html.parser')info=[]for item in soup.select('#bd li'):names=item.select('.name')[0].text.strip()price_n=item.select('.price span')[2].text.strip()price_f = item.select('.price span')[3].text.strip()price=price_n+price_finfo.append([names,price])
#     print(info)with codecs.open('book.csv','w',encoding='utf-8-sig') as f:writer = csv.writer(f)writer.writerow(['序号', '书名', '价格'])for i,l in enumerate(info):writer.writerow([i,l[0],l[1]])#print(price,text,image,sep='\n**********************\n',end='\n*****')#多变量值分隔
if __name__ == '__main__':main()

(二)以xpath方式获取

import urllib.request
import requests,csv
from lxml import etree
import codecs   #自然语言编码转换库
def main():url = "http://book.dangdang.com/20180504_by11" request = urllib.request.Request(url=url) # 不需要headersresponse = urllib.request.urlopen(request)content = response.read().decode('GBK') # 通过网页查看charset = gb2312tree = etree.HTML(content)book_list = tree.xpath("//div[@class='con body']//li/p/a/text()") # 通过xpath获取a标签中的书名price_n_list = tree.xpath("//div[@class='con body']//li/p[@class='price']//span[@class='num']/text()")  # span中的价格由两部分组成price_f_list = tree.xpath("//div[@class='con body']//li/p[@class='price']//span[@class='tail']/text()")info = [] # 定义列表存放书籍信息for item in range(len(book_list)) :names= book_list[item]price_n = price_n_list[item]price_f = price_f_list[item]price = price_n+ price_finfo.append([names,price])
#     print(info)# 将列表中的数据存放到csv文件中with codecs.open('book.csv','w',encoding='utf-8-sig') as f:writer = csv.writer(f)writer.writerow(['序号', '书名', '价格'])for i,l in enumerate(info):writer.writerow([i,l[0],l[1]])#print(price,text,image,sep='\n**********************\n',end='\n*****')#多变量值分隔
if __name__ == '__main__':main()

Python获取电子书籍数据相关推荐

  1. 为了提前预测比赛结果,于是我用Python获取比赛球员数据进行分析,结果...

    为了提前预测比赛结果,于是我用Python获取比赛球员数据进行分析,结果... 前因后果 准备工作 实现步骤 代码展示 部分效果展示 最后 前因后果 最近不是世界杯嘛,但是太忙了实在没时间看,于是为了 ...

  2. python 行情数据,拼多多股票:Python获取股票行情数据的一种方法

    Python获取股票行情数据的一种方法 拼多多股票 本号帮大家找了一个可免费获取股票行情数据的接口. Tushare社区目前主要维护新版本:tushare pro,数据更稳定拼多多股票质量更高,可获取 ...

  3. 利用python获取word图表数据和修改图表信息

    利用python获取word图表数据和修改图表信息 起因咸鱼有个人问word怎么修改图表信息,想用docx库找不到关于图表的方法,这里用了Win32com. import time import wi ...

  4. 使用python获取美股行情数据

    使用python获取美股GME一月数据,包括开盘价.收盘价.最高价.最低价.成交量等 工具包:pandas_datareader 环境安装 pip install pandas_datareader ...

  5. 使用Python获取最新疫情数据,制作可视化动态地图,实时展示各地情况

    愿世界再无病痛,盼疫情早日结束 序言 效果展示 准备工作 代码展示 序言 疫情降临转眼已经第三年了,时间过得真快,愿疫情早点结束,世界不再多灾多难. 最近疫情稍微好转一些了,所以咱们获取一下最新的疫情 ...

  6. Python获取用电情况数据-AHPU校园网

    我写这个主要是想把寝室的用电情况给保存下来,做一些分析统计之类的.代码运行在一台树莓派上面,树莓派连着校园网. 正文 首先看看浏览器网页查询页面. 在写代码之前我们要先获取一些参数,而用这些参数可以让 ...

  7. Python获取全部股票数据

    目前整个沪深京A股市场总共有5000余支股票,那么我们怎么能获取到这些股票的数据(股价.市值.市盈率.市净率等)呢? 小编常用的有三个网站,分别是东方财富.同花顺.雪球,请自行查阅. 我们以东方财富为 ...

  8. 用 Python 获取股市交易数据

    最近受全球大环境影响,美股犹如坐上过山车,感觉每天都在见证历史时刻.而我们的大盘最近也不消停,不过这也给大家抄底制造了机会,但机会都是给有准备的人,想要抓住机会就得懂得分析数据,想要分析数据还得先拿到 ...

  9. python 获取天气接口数据

    从微信公众号中看到的代码,以此记录 用Python获取中国天气网天气接口数据 import urllib.request import json code='101160101' url='http: ...

最新文章

  1. c#程序设定使用期限_C# 给某个方法设定执行超时时间
  2. vue中获取url参数
  3. java char判断相等_【Java面试考点4】java基础之运算符
  4. @select注解_mybatis开发,你用 xml 还是注解?我 pick xml
  5. 18.04升级到19.10
  6. python 伪造源ip_Swaks伪造邮件
  7. rhel修改hostname_RHEL7 -- 修改主机名
  8. 早悟兰因(兰因絮果)
  9. 麦子学院项目-懒人天气App思维导图、素材下载
  10. 浅谈*迭代加深*深度优先搜索
  11. u盘装puppy linux,将PuppyLinux安装到U盘
  12. Linux zip分卷压缩
  13. 北京大学 李胜 计算机,rasterization-北京大学计算机系图形与交互技术室.pdf
  14. rancher坏了或删除,继续使用k8s集群
  15. Oracle分析函数使用总结
  16. Android Framework框架分析
  17. 程序员自己的定位以及怪物追踪寻路AI (转)
  18. 为什么要在项目中使用缓存呢?
  19. Thymeleaf模板使用实例+模板分页
  20. 如何在pc上安装安卓应用程序

热门文章

  1. css初识:样式的引用、css复合选择器、css书写规范、css背景
  2. 数据仓库和数据集市的区别与联系
  3. Redis面试题:基本数据类型与底层存储结构
  4. 现货黄金入门与技巧:如何在财经数据、新闻
  5. 实现简单的PHP接口,以及使用js/jquery ajax技术调用此接口
  6. 压缩文件注意(rar软件和zip软件区别)
  7. [Java]图论进阶--最小生成树算法
  8. Acer 4750 安装黑苹果_NUC8 黑苹果安装教程
  9. 上一期文章说的关于PWN入门常见的问题
  10. php多个构造方法,PHP高级对象构建多个构造函数的使用方法