Python爬虫-Beautiful Soup-当当图书目录(1)

第一次用python + Beautiful Soup爬些数据,用当当图书目录作为练习了。

思路:
- 1. 获取当当的图书类别:类报名称 + 链接 url

效果:

脚本说明:
- 1. mylog.py:日志
- 2. getBookKindInfo.py:图书目录


mylog.py

# !/usr/bin/env python
#-*- coding:utf-8 -*-
'''
Created on 2018-4-10
@author: Administrator
'''
import logging
import getpass
import sys#### 定义MyLog类
class MyLog(object):"""这个类用于创建一个自用的log"""def __init__(self):self.user = getpass.getuser()self.logger = logging.getLogger(self.user)self.logger.setLevel(logging.DEBUG)#### 日志文件名self.logFile = sys.argv[0][0:-3] + '.log'    #日志文件名self.formatter = logging.Formatter('%(asctime)-12s %(levelname)-8s %(name)-10s %(message)-12s')"""日志显示到屏幕上并输出到日志文件夹内"""logHand=logging.FileHandler(self.logFile)logHand.setFormatter(self.formatter)logHand.setLevel(logging.ERROR) #只有错误才会被记录到logfile中logHandSt=logging.StreamHandler()logHandSt.setFormatter(self.formatter)self.logger.addHandler(logHand)self.logger.addHandler(logHandSt)"""日志的5个级别对应以下的5个函数"""def debug(self,msg):self.logger.debug(msg)def info(self,msg):self.logger.info(msg)def warn(self,msg):self.logger.warn(msg)def error(self,msg):self.logger.error(msg)def critical(self,msg):self.logger.critical(msg)if __name__ == '__main__':mylog=MyLog()mylog.debug("我是一个debug")mylog.info("我是一个info")mylog.warn("我是一个warn")mylog.error("我是一个error")mylog.critical("我是一个critical")

getBookKindInfo.py

#! /usr/bin/env python
#-*- coding:utf-8 -*-'''
Created on 2018-4-10
@author: Administrator
获取当当图书种类, 大类名称+大类url,小类名称+小类url
'''
import re
from bs4 import BeautifulSoup
import urllib2
from mylog import MyLog as mylogclass BookKindItem(object):'''图书种类'''name=None    # 种类名称 url=None         # 种类的url    class GetBookKindItem(object):'''获取当当图书种类'''def getResponseContent(self,url):try:response=urllib2.urlopen(url.encode('utf8'))except:            self.log.error(u'python 返回 URL:%s 数据失败' %url)else:self.log.info(u'Python 返回URL:%s A数据成功' %url)return response.read()def __init__(self):self.urls=[ ]self.log=mylog()#         self.getUrls()    def getUrls(self):URL=r'http://category.dangdang.com/?ref=www-0-C'htmlContent=self.getResponseContent(URL)soup=BeautifulSoup(htmlContent,'lxml', from_encoding='gbk')   #此处改为utf8则取不“全图书类别”#大类DL = []#小类  XL = []#outside  ---外层的div#_li      ---li层for outsideDiv in soup.find("div", class_="classify_books", id="floor_1").find_all("div", class_="classify_kind"):# 图书大类item_dl=BookKindItem();item_dl.name=outsideDiv.div.a.string;       item_dl.url=outsideDiv.div.a.get("href");            DL.append(item_dl);
#             for e in DL:
#                 print (' %s----%s' % (e.name,  e.url));# 图书小类for _li in outsideDiv.find("ul").find_all("li"):if _li.a.string == "更多":continueelse:item_xl=BookKindItem();item_xl.name=_li.a.string;       item_xl.url=_li.a.get("href");            XL.append(item_xl);
#                     for e in XL:
#                         print (' %s----%s' % (e.name,  e.url));return DL, XLif __name__ == '__main__':
#     url=u'http://tieba.baidu.com/f?kw=%E6%9D%83%E5%8A%9B%E7%9A%84%E6%B8%B8%E6%88%8F&ie=utf-8&pn=50'
#     GTI=GetBookKindItem()    #首先获取相关链接从KindLinkskls=GetBookKindItem()#书籍的链接数据bdata=kls.getUrls()print (' ## 图书大类' );for e in bdata[0]:print (' %s----%s' % (e.name,  e.url));print (' ## 图书小类' );for e in bdata[1]:print (' %s----%s' % (e.name,  e.url));

Python爬虫-Beautiful Soup-当当图书目录(1)相关推荐

  1. 万字博文教你python爬虫Beautiful Soup库【详解篇】

  2. Python进阶之Scrapy-redis分布式爬虫抓取当当图书

    Python进阶之Scrapy-redis分布式爬虫抓取当当图书 1. 准备工作 1.1 安装scrapy-redis 1.2 在windows安装redis程序 1.3 打开redis服务 2. 需 ...

  3. 在当当买了python怎么下载源代码-python爬虫爬取当当网

    [实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...

  4. python beautifulsoup抓取网页内容_利用Python和Beautiful Soup抓取网页内容

    利用Python和Beautiful Soup抓取网页内容 Posted on 2012-08-09 00:08 SamWei 阅读(381) 评论(1) 编辑 收藏 Python 3中提供了url打 ...

  5. python爬虫爬取当当网的商品信息

    python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...

  6. python修改html内容_详解Python利用Beautiful Soup模块修改内容示例代码

    Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python 库.它能够通过你喜欢的转换器实现惯用的文档导航.查找.修改文档的方式.他还能够修改HTML/XML文档的内容.这篇 ...

  7. python爬虫爬取豆瓣图书

    爬取豆瓣图书top250的第一页 我最终爬取的是图书的书名,链接 先要做个说明,如果你是编程高手的话,这边文章你就不用看了,如果你是个python爬虫小白的话,可以看看这篇原创 我将用到的软件是pyc ...

  8. 爬虫---Beautiful Soup 初始

    我们在工作中,都会听说过爬虫,那么什么是爬虫呢? 什么是网络爬虫 爬虫基本原理 所谓网络爬虫就是一个自动化数据采集工具,你只要告诉它要采集哪些数据,丢给它一个 URL,就能自动地抓取数据了.其背后的基 ...

  9. python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...

    Python爬虫包 BeautifulSoup  递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到 ...

最新文章

  1. UI设计比较流行的插画类型和运用
  2. 纷享车链AutoChain首创之数据保险柜的解读
  3. linux imq原理图,编译IMQ模块
  4. ASP.NET Web Froms开发模式中实现程序集的延迟加载
  5. 【WXS数据类型】Boolean
  6. GooFlow有后门代码
  7. VS2015番茄安装教程
  8. APP抓包加密破解(hook)
  9. 微型计算机属于超大规模集成电路计算机,超大规模集成电路计算机是第几代计算机...
  10. 通讯网关 api网关_伟大的api网关迁移
  11. u检验和t检验区别与联系
  12. [No0000102]JavaScript-基础课程2
  13. 纯音乐自制吉他及钢琴简谱合集
  14. 第5章 运算符、表达式和语句
  15. 朗强:连接电脑的HDMI线输入电视上没有反应是什么原因?
  16. Android studio 模拟器启动黑屏解决办法
  17. 大数据——Java中异常的捕获和处理
  18. 解决虚拟机启动黑屏无法进入系统
  19. hdu 4745 区间dp
  20. javac -d,-cp是什么意思

热门文章

  1. 这 7 个牛逼项目,不来看看~~
  2. 二年级数学计算机教学教案,人教版二年级下册数学全册教案
  3. 简洁版Featured Category/Shop by Category模块
  4. Android7.0 分屏多窗口
  5. C语言:动态内存分配
  6. 【二】gym初次入门一学就会---代码详细解析简明教程----平衡杆案例
  7. 数据结构考点之n阶矩阵
  8. Getaverse,走向Web3的远方桥梁
  9. FFMPEG的.Net封装,FFmpeg.NET
  10. JavaScript、jQuery实现“社区便利店收银系统”(1+X Web前端开发初级 例题)