Datawhale打卡任务 Task 05爬虫入门与综合应用

Task 05爬虫入门与综合应用

Task 05爬虫入门与综合应用

5.0 前言

对于自动化办公而言,网络数据的批量获取完数据可以节约相当的时间,因此爬虫在自动化办公中占据了一个比较重要的位置。

因而本节针对爬虫项目进行一个介绍,力求最大程度还原实际的办公场景。

5.1 Requests简介

Requests是一款目前非常流行的http请求库,使用python编写,能非常方便的对网页Requests进行爬取,也是爬虫最常用的发起请求第三方库。

安装方法:

In [ ]:

'''
pip install requests
或者conda安装
conda install requests'''

Out[ ]:

'\npip install requests\n或者conda安装\nconda install requests'

In [ ]:

# re.status_code 响应的HTTP状态码
# re.text 响应内容的字符串形式
# rs.content 响应内容的二进制形式
# rs.encoding 响应内容的编码

5.1.1 访问百度

试一试对百度首页进行数据请求:

项目难度:⭐

In [ ]:

import requests
# 发出http请求
re = requests.get('https://www.baidu.com')
# 查看响应情况
print(re.status_code)
#输出:200
#200就是响应的状态码,表示请求成功
#我们可以通过res.status_code的值来判断请求是否成功。
print(re.text[:50])
# res.text 返回的是服务器响应内容的字符串形式,也就是文本内容

### 
200
<!DOCTYPE html>
<!--STATUS OK--><html> <head><met

5.1.2 下载txt文件

例:用爬虫下载孔乙己的文章,网址是https://apiv3.shanbay.com/codetime/articles/mnvdu

我们打开这个网址 可以看到是鲁迅的文章

我们尝试着用爬虫保存文章的内容

项目难度:⭐

In [ ]:

import requests
# 发出http请求
re = requests.get('https://apiv3.shanbay.com/codetime/articles/mnvdu')
# 查看响应状态
print('网页的状态码为%s'%re.status_code)
with open('鲁迅文章.txt', 'w',encoding='utf-8') as file:
  # 将数据的字符串形式写入文件中
  print('正在爬取小说')
  file.write(re.text)

# re.txt就是网页中的内容,将内容保存到txt文件中
网页的状态码为200
正在爬取小说

5.1.3 下载图片

re.text用于文本内容的获取、下载 re.content用于图片、视频、音频等内容的获取、下载

项目难度:⭐⭐

In [ ]:

import requests
# 发出http请求
#下载图片
res=requests.get('https://img-blog.csdnimg.cn/20210424184053989.PNG')
# 以二进制写入的方式打开一个名为 info.jpg 的文件
with open('datawhale.png','wb') as ff:
    # 将数据的二进制形式写入文件中
    print('爬取图片')
    ff.write(res.content)

# **re.encoding** 爬取内容的编码形似,
# 常见的编码方式有 ASCII、GBK、UTF-8 等。
# 如果用和文件编码不同的方式去解码,我们就会得到一些乱码。
爬取图片

5.2 HTML解析和提取

浏览器工作原理:

向浏览器中输入某个网址,浏览器回向服务器发出请求,然后服务器就会作出响应。其实,服务器返回给浏览器的这个结果就是HTML代码,浏览器会根据这个HTML代码将网页解析成平时我们看到的那样

比如我们来看看百度的html页面

In [ ]:

import requests
res=requests.get('https://baidu.com')
print(res.text)
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>ç¾åº¦ä¸ä¸ï¼ä½ å°±ç¥é</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class=s_ipt value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=ç¾åº¦ä¸ä¸ class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class=mnav>æ°é»</a> <a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj_trmap class=mnav>å°å¾</a> <a href=http://v.baidu.com name=tj_trvideo class=mnav>è§é¢</a> <a href=http://tieba.baidu.com name=tj_trtieba class=mnav>è´´å§</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class=lb>ç»å½</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">ç»å½</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">æ´å¤äº§å</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>å³äºç¾åº¦</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>&copy;2017&nbsp;Baidu&nbsp;<a href=http://www.baidu.com/duty/>使ç¨ç¾åº¦åå¿è¯»</a>&nbsp; <a href=http://jianyi.baidu.com/ class=cp-feedback>æè§åé¦</a>&nbsp;京ICPè¯030173å·&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>

将会看到很多带有标签的信息

HTML(Hyper Text Markup Language) 是一种超文本标记语言,是由一堆标记组成。

例如

In [ ]:

'''
<html>
  <head>
    <title>我的网页</title>
  </head>
  <body>
    Hello,World
  </body>
</html>'''

上面即为一个最简单的html,我们所需要的信息就是夹在标签中

想对html有根据深入的了解,可以html菜鸟教程

HTML 教程 | 菜鸟教程

那么我们如何解析html页面呢?

5.3 BeautifulSoup简介

我们一般会使用BeautifulSoup这个第三方库

安装方法:

In [ ]:

'''
pip install bs4
或
conda install bs4'''

我们来解析豆瓣读书 Top250

它的网址是:豆瓣读书 Top 250

项目难度:⭐⭐

In [ ]:

import io
import sys
import requests
from bs4 import BeautifulSoup
###运行出现乱码时可以修改编码方式
#sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
###
headers = {
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
res = requests.get('https://book.douban.com/top250', headers=headers)
soup = BeautifulSoup(res.text, 'lxml')
print(soup)
<!DOCTYPE html>
<html class="ua-mac ua-webkit book-new-nav" lang="zh-cmn-Hans">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<title>豆瓣读书 Top 250</title>
<script>!function(e){var o=function(o,n,t){var c,i,r=new Date;n=n||30,t=t||"/",r.setTime(r.getTime()+24*n*60*60*1e3),c="; expires="+r.toGMTString();for(i in o)e.cookie=i+"="+o[i]+c+"; path="+t},n=function(o){var n,t,c,i=o+"=",r=e.cookie.split(";");for(t=0,c=r.length;t<c;t++)if(n=r[t].replace(/^\s+|\s+$/g,""),0==n.indexOf(i))return n.substring(i.length,n.length).replace(/\"/g,"");return null},t=e.write,c={"douban.com":1,"douban.fm":1,"google.com":1,"google.cn":1,"googleapis.com":1,"gmaptiles.co.kr":1,"gstatic.com":1,"gstatic.cn":1,"google-analytics.com":1,"googleadservices.com":1},i=function(e,o){var n=new Image;n.οnlοad=function(){},n.src="https://www.douban.com/j/except_report?kind=ra022&reason="+encodeURIComponent(e)+"&environment="+encodeURIComponent(o)},r=function(o){try{t.call(e,o)}catch(e){t(o)}},a=/<script.*?src\=["']?([^"'\s>]+)/gi,g=/http:\/\/(.+?)\.([^\/]+).+/i;e.writeln=e.write=function(e){var t,l=a.exec(e);return l&&(t=g.exec(l[1]))?c[t[2]]?void r(e):void("tqs"!==n("hj")&&(i(l[1],location.href),o({hj:"tqs"},1),setTimeout(function(){location.replace(location.href)},50))):void r(e)}}(document);</script>
<meta content="no-cache" http-equiv="Pragma"/>
<meta content="Sun, 6 Mar 2005 01:00:00 GMT" http-equiv="Expires"/>
<script>var _head_start = new Date();</script>
<link href="https://img3.doubanio.com/f/book/4cc1d754ffe6fbd776215e84f222dcb2a4265882/css/book/master.css" rel="stylesheet" type="text/css"/>
<link href="https://img3.doubanio.com/f/book/222a5c61e041638af8defc87cf97f4a863a77922/css/book/base/init.css" rel="stylesheet"/>
<style type="text/css"></style>
<script src="https://img3.doubanio.com/f/book/0495cb173e298c28593766009c7b0a953246c5b5/js/book/lib/jquery/jquery.js"></script>
<script src="https://img3.doubanio.com/f/shire/22ee83f45f94c7a90e73e0ee4acd18f902a6991f/js/douban.js"></script>
<script src="https://img3.doubanio.com/f/book/0322e3e810e475f1c82adb7d1c6ccfa1c0fa969c/js/book/master.js"></script>
<script> </script>
<!-- COLLECTED CSS -->
<link href="https://img3.doubanio.com/favicon.ico" rel="shortcut icon" type="image/x-icon"/>
</head>
<body>
<script>var _body_start = new Date();</script>
<link href="//img3.doubanio.com/dae/accounts/resources/d3e2921/shire/bundle.css" rel="stylesheet" type="text/css"/>
<div class="global-nav" id="db-global-nav">
<div class="bd">
<div class="top-nav-info">
<a class="nav-login" href="https://accounts.douban.com/passport/login?source=book" rel="nofollow">登录/注册</a>
</div>
<div class="top-nav-doubanapp">
<a class="lnk-doubanapp" href="https://www.douban.com/doubanapp/app?channel=top-nav">下载豆瓣客户端</a>
<div id="doubanapp-tip">
<a class="tip-link" href="https://www.douban.com/doubanapp/app?channel=qipao">豆瓣 <span class="version">6.0</span> 全新发布</a>
<a class="tip-close" href="javascript: void 0;">×</a>
</div>
<div class="more-items" id="top-nav-appintro">
<p class="appintro-title">豆瓣</p>
<p class="qrcode">扫码直接下载</p>
<div class="download">
<a href="https://www.douban.com/doubanapp/redirect?channel=top-nav&amp;direct_dl=1&amp;download=iOS">iPhone</a>
<span>·</span>
<a class="download-android" href="https://www.douban.com/doubanapp/redirect?channel=top-nav&amp;direct_dl=1&amp;download=Android">Android</a>
</div>
</div>
</div>
<div class="global-nav-items">
<ul>
<li class="">
<a data-moreurl-dict='{"from":"top-nav-click-main","uid":"0"}' href="https://www.douban.com" target="_blank">豆瓣</a>
</li>
<li class="on">
<a data-moreurl-dict='{"from":"top-nav-click-book","uid":"0"}' href="https://book.douban.com">读书</a>
</li>
<li class="">
<a data-moreurl-dict='{"from":"top-nav-click-movie","uid":"0"}' href="https://movie.douban.com" target="_blank">电影</a>
</li>
<li class="">
<a data-moreurl-dict='{"from":"top-nav-click-music","uid":"0"}' href="https://music.douban.com" target="_blank">音乐</a>
</li>
<li class="">
<a data-moreurl-dict='{"from":"top-nav-click-location","uid":"0"}' href="https://www.douban.com/location" target="_blank">同城</a>
</li>
<li class="">
<a data-moreurl-dict='{"from":"top-nav-click-group","uid":"0"}' href="https://www.douban.com/group" target="_blank">小组</a>
</li>
<li class="">
<a data-moreurl-dict='{"from":"top-nav-click-read","uid":"0"}' href="https://read.douban.com/?dcs=top-nav&amp;dcm=douban" target="_blank">阅读</a>
</li>
<li class="">
<a data-moreurl-dict='{"from":"top-nav-click-fm","uid":"0"}' href="https://douban.fm/?from_=shire_top_nav" target="_blank">FM</a>
</li>
<li class="">
<a data-moreurl-dict='{"from":"top-nav-click-time","uid":"0"}' href="https://time.douban.com/?dt_time_source=douban-web_top_nav" target="_blank">时间</a>
</li>
<li class="">
<a data-moreurl-dict='{"from":"top-nav-click-market","uid":"0"}' href="https://market.douban.com/?utm_campaign=douban_top_nav&amp;utm_source=douban&amp;utm_medium=pc_web" target="_blank">豆品</a>
</li>
</ul>
</div>
</div>
</div>
<script>
  ;window._GLOBAL_NAV = {
    DOUBAN_URL: "https://www.douban.com",
    N_NEW_NOTIS: 0,
    N_NEW_DOUMAIL: 0
  };
</script>
<script defer="defer" src="//img3.doubanio.com/dae/accounts/resources/d3e2921/shire/bundle.js"></script>
<link href="//img3.doubanio.com/dae/accounts/resources/d3e2921/book/bundle.css" rel="stylesheet" type="text/css"/>
<div class="nav" id="db-nav-book">
<div class="nav-wrap">
<div class="nav-primary">
<div class="nav-logo">
<a href="https://book.douban.com">豆瓣读书</a>
</div>
<div class="nav-search">
<form action="https://search.douban.com/book/subject_search" method="get">
<fieldset>
<legend>搜索:</legend>
<label for="inp-query">
</label>
<div class="inp"><input id="inp-query" maxlength="60" name="search_text" placeholder="书名、作者、ISBN" size="22" value=""/></div>
<div class="inp-btn"><input type="submit" value="搜索"/></div>
<input name="cat" type="hidden" value="1001"/>
</fieldset>
</form>
</div>
</div>
</div>
<div class="nav-secondary">
<div class="nav-items">
<ul>
<li><a href="https://book.douban.com/cart/">购书单</a>
</li>
<li><a href="https://read.douban.com/ebooks/?dcs=book-nav&amp;dcm=douban" target="_blank">电子图书</a>
</li>
<li><a href="https://market.douban.com/book?utm_campaign=book_nav_freyr&amp;utm_source=douban&amp;utm_medium=pc_web">豆瓣书店</a>
</li>
<li><a href="https://book.douban.com/annual/2020?source=navigation" target="_blank">2020年度榜单</a>
</li>
<li><a href="https://www.douban.com/standbyme/2020?fullscreen=true&amp;hidenav=true&amp;autorotate=false&amp;source=book_navigation" target="_blank">2020书影音报告</a>
</li>
<li class="book-cart"><a href="https://market.douban.com/cart/?biz_type=book&amp;utm_campaign=book_nav_cart&amp;utm_source=douban&amp;utm_medium=pc_web" target="_blank">购物车</a>
</li>
</ul>
</div>
<a class="bookannual" href="https://book.douban.com/annual/2020?source=book_navigation"></a>
</div>
</div>
<script id="suggResult" type="text/x-jquery-tmpl">
  <li data-link="{
 {= url}}">
            <a href="{
 {= url}}" οnclick="moreurl(this, {from:'book_search_sugg', query:'{
 {= keyword }}', subject_id:'{
 {= id}}', i: '{
 {= index}}', type: '{
 {= type}}'})">
            <img src="{
 {= pic}}" width="40" />
            <div>
                <em>{
 {= title}}</em>
                {
 {if year}}
                    <span>{
 {= year}}</span>
                {
 {/if}}
                <p>
                {
 {if type == "b"}}
                    {
 {= author_name}}
                {
 {else type == "a" }}
                    {
 {if en_name}}
                        {
 {= en_name}}
                    {
 {/if}}
                {
 {/if}}
                 </p>
            </div>
        </a>
        </li>
  </script>
<script defer="defer" src="//img3.doubanio.com/dae/accounts/resources/d3e2921/book/bundle.js"></script>
<div id="wrapper">
<div id="content">
<h1>豆瓣读书 Top 250</h1>
<div class="grid-16-8 clearfix">
<div class="article">
<div class="indent">
<p class="ulfirst"></p>
<table width="100%">
<tr class="item">
<td valign="top" width="100">
<a class="nbg" href="https://book.douban.com/subject/1007305/" οnclick="moreurl(this,{i:'0'})">
<img src="https://img1.doubanio.com/view/subject/s/public/s1070959.jpg" width="90"/>
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://book.douban.com/subject/1007305/" οnclick="&quot;moreurl(this,{i:'0'})&quot;" title="红楼梦">
                红楼梦

                
              </a>



                  <img alt="可试读" src="/pics/read.gif" title="可试读"/>
</div>
<p class="pl">[清] 曹雪芹 著 / 人民文学出版社 / 1996-12 / 59.70元</p>
<div class="star clearfix">
<span class="allstar50"></span>
<span class="rating_nums">9.6</span>
<span class="pl">(
                    352714人评价
                )</span>
</div>
<p class="quote" style="margin: 10px 0; color: #666">
<span class="inq">都云作者痴,谁解其中味?</span>
</p>
</td>
</tr>
</table>
<p class="ul"></p>
<table width="100%">
<tr class="item">
<td valign="top" width="100">
<a class="nbg" href="https://book.douban.com/subject/4913064/" οnclick="moreurl(this,{i:'1'})">
<img src="https://img9.doubanio.com/view/subject/s/public/s27279654.jpg" width="90"/>
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://book.douban.com/subject/4913064/" οnclick="&quot;moreurl(this,{i:'1'})&quot;" title="活着">
                活着

                
              </a>
</div>
<p class="pl">余华 / 作家出版社 / 2012-8-1 / 20.00元</p>
<div class="star clearfix">
<span class="allstar45"></span>
<span class="rating_nums">9.4</span>
<span class="pl">(
                    638363人评价
                )</span>
</div>
<p class="quote" style="margin: 10px 0; color: #666">
<span class="inq">生的苦难与伟大</span>
</p>
</td>
</tr>
</table>
<p class="ul"></p>
<table width="100%">
<tr class="item">
<td valign="top" width="100">
<a class="nbg" href="https://book.douban.com/subject/6082808/" οnclick="moreurl(this,{i:'2'})">
<img src="https://img3.doubanio.com/view/subject/s/public/s27237850.jpg" width="90"/>
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://book.douban.com/subject/6082808/" οnclick="&quot;moreurl(this,{i:'2'})&quot;" title="百年孤独">
                百年孤独

                
              </a>
<br/>
<span style="font-size:12px;">Cien años de soledad</span>
</div>
<p class="pl">[哥伦比亚] 加西亚·马尔克斯 / 范晔 / 南海出版公司 / 2011-6 / 39.50元</p>
<div class="star clearfix">
<span class="allstar45"></span>
<span class="rating_nums">9.3</span>
<span class="pl">(
                    355576人评价
                )</span>
</div>
<p class="quote" style="margin: 10px 0; color: #666">
<span class="inq">魔幻现实主义文学代表作</span>
</p>
</td>
</tr>
</table>
<p class="ul"></p>
<table width="100%">
<tr class="item">
<td valign="top" width="100">
<a class="nbg" href="https://book.douban.com/subject/4820710/" οnclick="moreurl(this,{i:'3'})">
<img src="https://img1.doubanio.com/view/subject/s/public/s4371408.jpg" width="90"/>
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://book.douban.com/subject/4820710/" οnclick="&quot;moreurl(this,{i:'3'})&quot;" title="1984">
                1984

                
              </a>
<br/>
<span style="font-size:12px;">Nineteen Eighty-Four</span>
</div>
<p class="pl">[英] 乔治·奥威尔 / 刘绍铭 / 北京十月文艺出版社 / 2010-4-1 / 28.00</p>
<div class="star clearfix">
<span class="allstar45"></span>
<span class="rating_nums">9.4</span>
<span class="pl">(
                    197104人评价
                )</span>
</div>
<p class="quote" style="margin: 10px 0; color: #666">
<span class="inq">栗树荫下,我出卖你,你出卖我</span>
</p>
</td>
</tr>
</table>
<p class="ul"></p>
<table width="100%">
<tr class="item">
<td valign="top" width="100">
<a class="nbg" href="https://book.douban.com/subject/1068920/" οnclick="moreurl(this,{i:'4'})">
<img src="https://img1.doubanio.com/view/subject/s/public/s1078958.jpg" width="90"/>
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://book.douban.com/subject/1068920/" οnclick="&quot;moreurl(this,{i:'4'})&quot;" title="飘">
                飘

                
              </a>
<br/>
<span style="font-size:12px;">Gone with the Wind</span>
</div>
<p class="pl">[美国] 玛格丽特·米切尔 / 李美华 / 译林出版社 / 2000-9 / 40.00元</p>
<div class="star clearfix">
<span class="allstar45"></span>
<span class="rating_nums">9.3</span>
<span class="pl">(
                    185637人评价
                )</span>
</div>
<p class="quote" style="margin: 10px 0; color: #666">
<span class="inq">革命时期的爱情,随风而逝</span>
</p>
</td>
</tr>
</table>
<p class="ul"></p>
<table width="100%">
<tr class="item">
<td valign="top" width="100">
<a class="nbg" href="https://book.douban.com/subject/6518605/" οnclick="moreurl(this,{i:'5'})">
<img src="https://img9.doubanio.com/view/subject/s/public/s28357056.jpg" width="90"/>
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://book.douban.com/subject/6518605/" οnclick="&quot;moreurl(this,{i:'5'})&quot;" title="三体全集">
                三体全集

                
                  <span style="font-size:12px;"> : 地球往事三部曲 </span>
</a>
</div>
<p class="pl">刘慈欣 / 重庆出版社 / 2012-1-1 / 168.00元</p>
<div class="star clearfix">
<span class="allstar45"></span>
<span class="rating_nums">9.4</span>
<span class="pl">(
                    113411人评价
                )</span>
</div>
<p class="quote" style="margin: 10px 0; color: #666">
<span class="inq">地球往事三部曲</span>
</p>
</td>
</tr>
</table>
<p class="ul"></p>
<table width="100%">
<tr class="item">
<td valign="top" width="100">
<a class="nbg" href="https://book.douban.com/subject/1019568/" οnclick="moreurl(this,{i:'6'})">
<img src="https://img2.doubanio.com/view/subject/s/public/s1076932.jpg" width="90"/>
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://book.douban.com/subject/1019568/" οnclick="&quot;moreurl(this,{i:'6'})&quot;" title="三国演义(全二册)">
                三国演义(全二册)

                
              </a>



                  <img alt="可试读" src="/pics/read.gif" title="可试读"/>
</div>
<p class="pl">[明] 罗贯中 / 人民文学出版社 / 1998-05 / 39.50元</p>
<div class="star clearfix">
<span class="allstar45"></span>
<span class="rating_nums">9.3</span>
<span class="pl">(
                    143123人评价
                )</span>
</div>
<p class="quote" style="margin: 10px 0; color: #666">
<span class="inq">是非成败转头空</span>
</p>
</td>
</tr>
</table>
<p class="ul"></p>
<table width="100%">
<tr class="item">
<td valign="top" width="100">
<a class="nbg" href="https://book.douban.com/subject/3259440/" οnclick="moreurl(this,{i:'7'})">
<img src="https://img2.doubanio.com/view/subject/s/public/s4610502.jpg" width="90"/>
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://book.douban.com/subject/3259440/" οnclick="&quot;moreurl(this,{i:'7'})&quot;" title="白夜行">
                白夜行

                
              </a>



                  <img alt="可试读" src="/pics/read.gif" title="可试读"/>
<br/>
<span style="font-size:12px;">白夜行</span>
</div>
<p class="pl">[日] 东野圭吾 / 刘姿君 / 南海出版公司 / 2008-9 / 29.80元</p>
<div class="star clearfix">
<span class="allstar45"></span>
<span class="rating_nums">9.1</span>
<span class="pl">(
                    479799人评价
                )</span>
</div>
<p class="quote" style="margin: 10px 0; color: #666">
<span class="inq">暗夜独行的残破灵魂,爱与恶本就难分难舍</span>
</p>
</td>
</tr>
</table>
<p class="ul"></p>
<table width="100%">
<tr class="item">
<td valign="top" width="100">
<a class="nbg" href="https://book.douban.com/subject/1084336/" οnclick="moreurl(this,{i:'8'})">
<img src="https://img2.doubanio.com/view/subject/s/public/s1103152.jpg" width="90"/>
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://book.douban.com/subject/1084336/" οnclick="&quot;moreurl(this,{i:'8'})&quot;" title="小王子">
                小王子

                
              </a>
<br/>
<span style="font-size:12px;">Le Petit Prince</span>
</div>
<p class="pl">[法] 圣埃克苏佩里 / 马振聘 / 人民文学出版社 / 2003-8 / 22.00元</p>
<div class="star clearfix">
<span class="allstar45"></span>
<span class="rating_nums">9.0</span>
<span class="pl">(
                    662061人评价
                )</span>
</div>
<p class="quote" style="margin: 10px 0; color: #666">
<span class="inq">献给长成了大人的孩子们</span>
</p>
</td>
</tr>
</table>
<p class="ul"></p>
<table width="100%">
<tr class="item">
<td valign="top" width="100">
<a class="nbg" href="https://book.douban.com/subject/1040211/" οnclick="moreurl(this,{i:'9'})">
<img src="https://img3.doubanio.com/view/subject/s/public/s1229240.jpg" width="90"/>
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://book.douban.com/subject/1040211/" οnclick="&quot;moreurl(this,{i:'9'})&quot;" title="福尔摩斯探案全集(上中下)">
       
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值