python实现,结果保存在同一目录下的douba.txt中
使用beautifulsoup实现
#coding=utf-8
import urllib2
from bs4 import BeautifulSoup
#伪造的头,不知到有用否
sendHeaders = {
'User-Agent':'Mozilla/5.3 (Windows NT 7.2; rv:18.0) Gecko/20100101 Firefox/19.0',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Connection':'keep-alive'
}
urlTmep = 'https://book.douban.com/top250?start='
saveFile = open('douban.txt','a')
k=1
for i in range(11):
url = urlTmep + str(i*5) #页码是通过get方式获取,同每页在后面都是5的倍数,一共10页
request = urllib2.Request(url,headers=sendHeaders)
html=urllib2.urlopen(request)
soup = BeautifulSoup(html,'lxml')
nameInfo = soup.select('div[class="pl2"]') #找到名字所在的位置
booksInfo = soup.select('p[class="pl"]') #出版社相关所在的位置
ratingInfo = soup.select('span[class="rating_nums"]') #评星所在的位置
commenInfo = soup.select('span[class="pl"]') #评价数量所在的位置
# print(">>>>>>>>>>>>>>")
for j in range(len(nameInfo)):
print('正在保存第%d页的第%d条信息'%(i,k))
#每次使用select之后得到的是一个里列表,使用attrs必须在前面进行选择其中的元素来操作
bookName = nameInfo[j].select('a')[0].attrs['title'] #获得中文名
saveFile.write(str(k)+'.'+bookName.encode('utf-8')+':') #给其加上序号
try: #部分书没有外文名字,没有的时候提示indexerror,所以except掉了
englishName = nameInfo[j].select('span')[0].get_text() #获得英文名
#select支持多重select
saveFile.write(englishName.encode('utf-8'+','))
except IndexError:
pass
booksInformation = booksInfo[j].get_text() #获得书的作者。出版社,价格,时间等信息
saveFile.write(booksInformation.encode('utf-8')+' ')
ratingNum = ratingInfo[j].get_text() #获得评星
saveFile.write(ratingNum.encode('utf-8')+',')
commenGetTemp = commenInfo[j].get_text() #获得书的评价
commen = commenGetTemp.replace('\n','') #评价数量中带有的换行和空格replace掉
commenFinal = commen.replace(' ','').replace(' ','')
saveFile.write(commenFinal.encode('utf-8')+'\n')
k += 1
saveFile.close()
一下的获得的部分输出结果,前面的序号是VIM自带带的序号
1 1.小王子:Le Petit Prince[法] 圣埃克苏佩里 / 马振聘 / 人民文学出版社 / 2003-8 / 22.00元 9.0,(204167人评价)
2 2.追风筝的人:The Kite Runner[美] 卡勒德·胡赛尼 / 李继宏 / 上海人民出版社 / 2006-5 / 29.00元 8.8,(228565人评价)
3 3.围城:钱锺书 / 人民文学出版社 / 1991-2 / 19.00 8.9,(173925人评价)
4 4.活着:余华 / 南海出版公司 / 1998-5 / 12.00元 9.1,(116275人评价)
5 5.白夜行:白夜行[日] 东野圭吾 / 刘姿君 / 南海出版公司 / 2008-9 / 29.80元 9.1,(162732人评价)
6 6.挪威的森林:ノルウェイの森[日] 村上春树 / 林少华 / 上海译文出版社 / 2001-2 / 18.80元 8.0,(174405人评价)
7 7.解忧杂货店:ナミヤ雑貨店の奇蹟(日)东野圭吾 / 李盈春 / 南海出版公司 / 2014-5 / 39.50元 8.6,(134401人评价)
8 8.不能承受的生命之轻:Nesnesitelná lehkost bytí[捷克] 米兰·昆德拉 / 许钧 / 上海译文出版社 / 2003-7 / 23.00元 8.4,(127417人评价)
9 9.红楼梦:[清] 曹雪芹 著 / 人民文学出版社 / 1996-12 / 59.70元 9.5,(108465人评价)
10 10.梦里花落知多少:郭敬明 / 春风文艺出版社 / 2003-11 / 20.00元 7.2,(141104人评价)
11 11.三体: : “地球往事”三部曲之一 刘慈欣 / 重庆出版社 / 2008-1 / 23.00 8.8,(115903人评价)
12 12.达·芬奇密码:The Da Vinci Code[美] 丹·布朗 / 朱振武 / 上海人民出版社 / 2004-2 / 28.00元 8.2,(121321人评价)
13 13.嫌疑人X的献身:容疑者Xの献身[日] 东野圭吾 / 刘子倩 / 南海出版公司 / 2008-9 / 28.00 8.9,(109931人评价)
14 14.1988:我想和这个世界谈谈:韩寒 / 国际文化出版公司 / 2010-9 / 25.00元 7.9,(114942人评价)
15 15.何以笙箫默:顾漫 / 朝华出版社 / 2007-4 / 15.00元 8.0,(111928人评价)
16 16.看见:柴静 / 广西师范大学出版社 / 2013-1-1 / 39.80元 8.8,(103123人评价)
17 17.简爱:Jane Eyre[英] 夏洛蒂·勃朗特 / 世界图书出版公司 / 2003-11 / 18.00元 8.5,(99087人评价)
18 18.平凡的世界(全三部):路遥 / 人民文学出版社 / 2005-1 / 64.00元 9.0,(90373人评价)
19 19.哈利·波特与魔法石:Harry Potter and the Philosopher's Stone[英] J. K. 罗琳 / 苏农 / 人民文学出版社 / 2000-9 / 19.50元 9.0,(79974人评价)
20 20.百年孤独:Cien años de soledad[哥伦比亚] 加西亚·马尔克斯 / 范晔 / 南海出版公司 / 2011-6 / 39.50元 9.2,(83348人评价)
21 21.飘(上下):Gone with the Wind[美国] 玛格丽特·米切尔 / 李美华 / 译林出版社 / 2000-9 / 40.00元 9.3,(71491人评价)
22 22.杜拉拉升职记:李可 / 陕西师范大学出版社 / 2007-9 / 26.00元 7.8,(87962人评价)
23 23.三重门:韩寒 / 作家出版社 / 2000-5 / 16.00 7.4,(91852人评价)
24 24.送你一颗子弹:刘瑜 / 上海三联书店 / 2010-1 / 25.00元 8.6,(79907人评价)
25 25.倾城之恋:张爱玲 / 花城出版社 / 1997-3-1 / 11.00 8.5,(80855人评价)