Python爬虫之豆瓣-新书速递-图书解析
1- 问题描述
抓取豆瓣“新书速递”[1]页面下图书信息(包括书名,作者,简介,url),将结果重定向到txt文本文件下。
2- 思路分析[2]
Step1 读取HTML
Step2 Xpath遍历元素和属性
3- 使用工具
Python,lxml模块,requests模块
4- 程序实现
# -*- coding: utf-8 -*-
from lxml import html
import requests page = requests.get('http://book.douban.com/latest?icn=index-latestbook-all')
tree = html.fromstring(page.text) # 若保存了html文件,可使用下面方法
# page = open('/home/freyr/codeHouse/python/512.htm', 'r').read()
# tree = html.fromstring(page) #提取图书信息
bookname = tree.xpath('//div[@class="detail-frame"]/h2/text()') # 书名
author = tree.xpath('//div[@class="detail-frame"]/p[@class="color-gray"]/text()') # 作者
info = tree.xpath('//div[@class="detail-frame"]/p[2]/text()') # 简介
url = tree.xpath('//ul[@class="cover-col-4 clearfix"]/li/a[@href]') # URL booknames = map(lambda x:x.strip(), bookname)
authors = map(lambda x:x.strip(), author)
infos = map(lambda x:x.strip(), info)
urls = map(lambda p: p.values()[0], url) with open('/home/freyr/codeHouse/python/dbBook.txt','w+') as f:
for book, author, info, url in zip(booknames, authors, infos, urls):
f.write('%s\n\n%s\n\n%s' % (book.encode('utf-8'), author.encode('utf-8'), info.encode('utf-8')))
f.write('\n\n%s\n' % url )
f.write('\n\n-----------------------------------------\n\n\n')
PS: 1.还没有真正入手学习网页爬虫,先简单记录下。
2.程序涉及编码问题[3]
[1] 豆瓣-新书速递
[3] lxml 中文乱码
Python爬虫之豆瓣-新书速递-图书解析的更多相关文章
- Python爬虫(四)——豆瓣数据模型训练与检测
前文参考: Python爬虫(一)——豆瓣下图书信息 Python爬虫(二)——豆瓣图书决策树构建 Python爬虫(三)——对豆瓣图书各模块评论数与评分图形化分析 数据的构建 在这张表中我们可以发现 ...
- 用Python爬虫对豆瓣《敦刻尔克》影评进行词云展示
最近很想看的一个电影,去知乎上看一下评论,刚好在学Python爬虫,就做个小实例. 代码基于第三方修改 原文链接 http://python.jobbole.com/88325/#comment-9 ...
- Python爬虫(一)——豆瓣下图书信息
爬虫目的: 随着近年互联网的发展,网络上的信息飞速数量增长.在庞大的数据面前想要获得期望的信息往往如同大海捞针.通过合理的筛选,在百万甚至数亿计的数据中找到所需信息,无疑有着非常大的意义. 在豆瓣网下 ...
- Python爬虫(二)——豆瓣图书决策树构建
前文参考: https://www.cnblogs.com/LexMoon/p/douban1.html Matplotlib绘制决策树代码: # coding=utf-8 import matpl ...
- python爬虫之一---------豆瓣妹子图
#-*- coding:utf-8 -*- __author__ = "carry" import urllib import urllib2 from bs4 import Be ...
- Python爬虫——爬豆瓣登录页面
直接上代码 import urllib.request import http.cookiejar from lxml import etree # from spiderImg import get ...
- Python 爬虫:豆瓣电影Top250,包括电影导演、类型、年份、主演
结果输出到文本文件中. import codecs import requests from bs4 import BeautifulSoup headers={'User-Agent': 'Mozi ...
- Python爬虫_豆瓣电视剧
1 import requests 2 import json 3 import csv 4 5 6 class DoubantvSpider: 7 def __init__(self): 8 # s ...
- Python爬虫系列(七):提高解析效率
如果仅仅因为想要查找文档中的<a>标签而将整片文档进行解析,实在是浪费内存和时间.最快的方法是从一开始就把<a>标签以外的东西都忽略掉. SoupStrainer 类可以定义文 ...
随机推荐
- Java中的注解是如何工作的?--annotation学习一
自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解.这篇文章中,我将向大家讲述 ...
- Python进阶08 异常处理
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 本文特别感谢kylinfish的纠正,相关讨论见留言区. 异常处理 在项目开发中, ...
- 要件审判九步法及其基本价值 z
要件审判九步法及其基本价值 发布时间:2014-12-24 14:29:05 作者介绍 邹碧华,男,1967年出生于江西奉新,毕业于北京大学法学院,获法学博士学位.上海市高级人民法院副院长.2006年 ...
- [Java] 过滤文件夹
package test.file; import java.io.File; import java.io.FileFilter; /** * 过滤文件夹 * @author Frost.Yen * ...
- Eclipse 中使用 ctrl 无法追踪函数的问题
Eclipse 中使用 ctrl 无法追踪函数的问题 Eclipse 项目中应该有 .buildpath , .project 两个文件,如果 Eclipse 中使用 ctrl 无法追踪函数, 第一步 ...
- Delphi的Socket编程步骤(repulish)
转贴自:http://topic.csdn.net/t/20010727/16/212155.html ClientSocket 和ServerSocket几个重要的属性: 1.client和se ...
- Django 之 下载文件
法I: views.py #encoding:utf-8 import os from django.core.servers.basehttp import FileWrapper from dja ...
- [ZOJ 1004] Anagrams by Stack (简单搜索)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1004 题目大意:给你个栈,给你源串和目标串,按字典序输出符合要求 ...
- iOS中使用FMDB事务批量更新数据库
今天比较闲看到大家在群里讨论关于数据库操作的问题,其中谈到了"事务"这个词,坦白讲虽然作为计算机专业的学生,在上学的时候确实知道存储过程.触发器.事务等等这些名词的概念,但是由于毕 ...
- IntelliJ IDEA显示行号方法
File->Settings->Editor->General->Appearence->Show line numbers