import urllib.request #导入模块
import re #导入正则表达式模块
for page in range(10): #遍历 1-10
print(page)
url = 'https://book.douban.com/top250?start=' + str(page * 25) #打开 10 个网页的链接
url = urllib.request.urlopen(url) #发出请求
source_code = url.read().decode('utf8') #读出10个网页的源代码
# print(source_code) #测试
reg = re.compile('<a href="(.*?)".*?title="(.*?)".*?</a>.*?<p class="pl">(.*?)</p>.*?<span class="rating_nums">(.*?)</span>',re.S) #正则匹配所需要的内容(以一个网页为例)
book_name = reg.findall(source_code) # findall查找内容
# print(book_name) #测试
book = [] #建立一个空的列表,用于存放下面循环的内容,形成一个二维数组。
for books in book_name: #遍历book_name的内容
authors = books[2].split('/') #每个图书的作者名子个数不一样,以 / 分片,只取第一个名字
url = books[0] #取每本书的链接
name = books[1] #取每本书的名字
author = authors[0] #取每本书的第一个作者名字
date = authors[-2] #取每本书的日期
money = authors[-1] #取每本书的价钱
source = books[-1] #取每本书的评分
book.append([name,source,author,money,url,date]) #加入刚才建立好的空列表,进行排序
for list in book: #遍历二维数组book的内容
print(list) #输出结果
工具猿之python爬虫-豆瓣图书TOP250
最新推荐文章于 2024-09-07 20:33:41 发布