Python爬虫-Beautiful Soup-当当图书目录(1)
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)相关推荐
- 万字博文教你python爬虫Beautiful Soup库【详解篇】
- Python进阶之Scrapy-redis分布式爬虫抓取当当图书
Python进阶之Scrapy-redis分布式爬虫抓取当当图书 1. 准备工作 1.1 安装scrapy-redis 1.2 在windows安装redis程序 1.3 打开redis服务 2. 需 ...
- 在当当买了python怎么下载源代码-python爬虫爬取当当网
[实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...
- python beautifulsoup抓取网页内容_利用Python和Beautiful Soup抓取网页内容
利用Python和Beautiful Soup抓取网页内容 Posted on 2012-08-09 00:08 SamWei 阅读(381) 评论(1) 编辑 收藏 Python 3中提供了url打 ...
- python爬虫爬取当当网的商品信息
python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...
- python修改html内容_详解Python利用Beautiful Soup模块修改内容示例代码
Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python 库.它能够通过你喜欢的转换器实现惯用的文档导航.查找.修改文档的方式.他还能够修改HTML/XML文档的内容.这篇 ...
- python爬虫爬取豆瓣图书
爬取豆瓣图书top250的第一页 我最终爬取的是图书的书名,链接 先要做个说明,如果你是编程高手的话,这边文章你就不用看了,如果你是个python爬虫小白的话,可以看看这篇原创 我将用到的软件是pyc ...
- 爬虫---Beautiful Soup 初始
我们在工作中,都会听说过爬虫,那么什么是爬虫呢? 什么是网络爬虫 爬虫基本原理 所谓网络爬虫就是一个自动化数据采集工具,你只要告诉它要采集哪些数据,丢给它一个 URL,就能自动地抓取数据了.其背后的基 ...
- python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...
Python爬虫包 BeautifulSoup 递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到 ...
最新文章
- UI设计比较流行的插画类型和运用
- 纷享车链AutoChain首创之数据保险柜的解读
- linux imq原理图,编译IMQ模块
- ASP.NET Web Froms开发模式中实现程序集的延迟加载
- 【WXS数据类型】Boolean
- GooFlow有后门代码
- VS2015番茄安装教程
- APP抓包加密破解(hook)
- 微型计算机属于超大规模集成电路计算机,超大规模集成电路计算机是第几代计算机...
- 通讯网关 api网关_伟大的api网关迁移
- u检验和t检验区别与联系
- [No0000102]JavaScript-基础课程2
- 纯音乐自制吉他及钢琴简谱合集
- 第5章 运算符、表达式和语句
- 朗强:连接电脑的HDMI线输入电视上没有反应是什么原因?
- Android studio 模拟器启动黑屏解决办法
- 大数据——Java中异常的捕获和处理
- 解决虚拟机启动黑屏无法进入系统
- hdu 4745 区间dp
- javac -d,-cp是什么意思
热门文章
- 这 7 个牛逼项目,不来看看~~
- 二年级数学计算机教学教案,人教版二年级下册数学全册教案
- 简洁版Featured Category/Shop by Category模块
- Android7.0 分屏多窗口
- C语言:动态内存分配
- 【二】gym初次入门一学就会---代码详细解析简明教程----平衡杆案例
- 数据结构考点之n阶矩阵
- Getaverse,走向Web3的远方桥梁
- FFMPEG的.Net封装,FFmpeg.NET
- JavaScript、jQuery实现“社区便利店收银系统”(1+X Web前端开发初级 例题)