pathon爬取豆瓣纸书

用python爬取豆瓣纸书,先来代码:

from bs4 import BeautifulSoup
import bs4
import requests

def getHtmlText(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encodin=r.apparent_encoding
        return r.text
    except:
        return ""

def fillBookList(BookList,html):
    soup=BeautifulSoup(html,'html.parser')
    ul=soup.find('div','tab-list book-show-wrap').ul
    for li in ul.children:
        if isinstance(li,bs4.element.Tag):
            BookList.append(li.find('h3').string)

def printBookList(BookList,num):
    tple="{0:{1}^10}"
    print(tple.format('书籍',chr(12288)))
    for i in range(num):
        print(tple.format(BookList[i],chr(12288)))

def main():
    book=[]
    url='https://market.douban.com/book/?platform=web&channel=book_nav&page=1&page_num=20&'
    html=getHtmlText(url)
    fillBookList(book,html)
    printBookList(book,20)

main()

中间有两个注意点,第一个时要注意找各种子节点时要分析html源码,第一次写的时候,随便找了个ul,但html中有很多ul,这时就要找到 div的ul再往下推,其次,需要判断li是不是一个Tag,之后才是得到string。

第二个是输出问题,为了是输出更美观,应该用str.format方法,其中特别是中文空格和西文空格占的宽度不一样,如果前面的东西都是中文,空格也应该是用中文空格来使得居中,对齐变得更加美观
空格默认为西文空格,中文空格代码为 chr(12288)

format方法小结:
#输出基本用法
print('{0},{1}'.format('zhangk', 32))

print('{},{},{}'.format('zhangk','boy',32))
 
print('{name},{sex},{age}'.format(age=32,sex='male',name='zhangk'))


# 格式限定符
# 它有着丰富的的“格式限定符”(语法是{}中带:号),比如:
 
# 填充与对齐
# 填充常跟对齐一起使用
# ^、<、>分别是居中、左对齐、右对齐,后面带宽度
# :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充,,可改为中文空格
 
print('{:>8}'.format('zhang'))
print('{:0>8}'.format('zhang'))
print('{:a<8}'.format('zhang'))
print('{:p^10}'.format('zhang'))
 
# 精度与类型f
# 精度常跟类型f一起使用
print('{:.2f}'.format(31.31412))
 
# 其他类型
# 主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制
print('{:b}'.format(15))
 
print('{:d}'.format(15))
 
print('{:o}'.format(15))
 
print('{:x}'.format(15))
 
# 用逗号还能用来做金额的千位分隔符
print('{:,}'.format(123456789))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1...
    年轻小伙程序员阅读 3,073评论 0 5
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,608评论 7 249
  • 周末去看房,几个小时的面谈下来,不需赘述,自是辛苦。更不消说晚餐时间已过却无米下肚,尽是茶水。中途去卫生间,经...
    月半嘟嘟阅读 380评论 2 3
  • 今天考完了第一科集中笔试,心情真是舒畅呀,走在去教学楼的路上,尽管下雨,感觉树呀雨呀,都是美的 为自己后两天的考试...
    Emilie7阅读 178评论 0 0
  • When I am extremely happy, I feel like drunk. When I am e...
    仙儿_Insect阅读 181评论 0 1