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] 豆瓣-新书速递

[2] lxml and Requests

[3] lxml 中文乱码

Python爬虫之豆瓣-新书速递-图书解析的更多相关文章

  1. Python爬虫(四)——豆瓣数据模型训练与检测

    前文参考: Python爬虫(一)——豆瓣下图书信息 Python爬虫(二)——豆瓣图书决策树构建 Python爬虫(三)——对豆瓣图书各模块评论数与评分图形化分析 数据的构建 在这张表中我们可以发现 ...

  2. 用Python爬虫对豆瓣《敦刻尔克》影评进行词云展示

    最近很想看的一个电影,去知乎上看一下评论,刚好在学Python爬虫,就做个小实例. 代码基于第三方修改 原文链接  http://python.jobbole.com/88325/#comment-9 ...

  3. Python爬虫(一)——豆瓣下图书信息

    爬虫目的: 随着近年互联网的发展,网络上的信息飞速数量增长.在庞大的数据面前想要获得期望的信息往往如同大海捞针.通过合理的筛选,在百万甚至数亿计的数据中找到所需信息,无疑有着非常大的意义. 在豆瓣网下 ...

  4. Python爬虫(二)——豆瓣图书决策树构建

    前文参考:  https://www.cnblogs.com/LexMoon/p/douban1.html Matplotlib绘制决策树代码: # coding=utf-8 import matpl ...

  5. python爬虫之一---------豆瓣妹子图

    #-*- coding:utf-8 -*- __author__ = "carry" import urllib import urllib2 from bs4 import Be ...

  6. Python爬虫——爬豆瓣登录页面

    直接上代码 import urllib.request import http.cookiejar from lxml import etree # from spiderImg import get ...

  7. Python 爬虫:豆瓣电影Top250,包括电影导演、类型、年份、主演

    结果输出到文本文件中. import codecs import requests from bs4 import BeautifulSoup headers={'User-Agent': 'Mozi ...

  8. Python爬虫_豆瓣电视剧

    1 import requests 2 import json 3 import csv 4 5 6 class DoubantvSpider: 7 def __init__(self): 8 # s ...

  9. Python爬虫系列(七):提高解析效率

    如果仅仅因为想要查找文档中的<a>标签而将整片文档进行解析,实在是浪费内存和时间.最快的方法是从一开始就把<a>标签以外的东西都忽略掉. SoupStrainer 类可以定义文 ...

随机推荐

  1. 获取mysql数据表中的列名

    select COLUMN_NAME from information_schema.columns where table_name='table_name' DESCRIBE table_name ...

  2. SpringMVC静态资源处理[转]

    SpringMvc配置DispatchServlet对所有请求进行过滤: <servlet> <servlet-name>mvc-dispatcher</servlet- ...

  3. 通过IP连接网上打印机(转载)

    From:http://zhidao.baidu.com/link?url=YZzFWur4-UZrNEobHv9zTkbYocMAjKkCq0LBj1QjJ6wApUT7MljxoD8JMBREUH ...

  4. Android之Handler

    1.Handler默认情况下与主线程处于同一线程 public class MainActivity extends Activity { private Button startButton = n ...

  5. spring注解注入

    @Autowired public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } @Test public void tes ...

  6. 无法重新组织表 "ty_wf_ex_local_process_info" 的索引 "idx_prc_act_id" (分区 1),因为已禁用页级锁定。

    无法重新组织表 "ty_wf_ex_local_process_info" 的索引 "idx_prc_act_id" (分区 1),因为已禁用页级锁定. ALT ...

  7. js注意事项

    在数组顶部插入一条数据 data.result.unshift({ Value: 'all', Text: '请选择分类' }); 执行iframe中的javascript方法 window.fram ...

  8. poj 1459 Power Network : 最大网络流 dinic算法实现

    点击打开链接 Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 20903   Accepted:  ...

  9. 使用spark访问elasticsearch的数据

    使用spark访问elasticsearch的数据,前提是spark能访问hive,hive能访问es http://blog.csdn.net/ggz631047367/article/detail ...

  10. namespace用法

    1.在WCF.Controller中定义了一个UserModel,标记为① 2.在WCF.Controller.Model中定义了一个UserModel(同上,namespace不同),标记为② 3. ...