本来可以使用一条正则表达式完成图书信息的爬取,结果发现在CPU性能较差的电脑上进行爬取时耗时非常长,几乎无法将结果获取到。所以,将大的html源码先经过一次简单的匹配以获取到一个中间结果,然后再从中间结果中依次进行匹配。结果发现按照这个步骤,即使使用循环也能非常快速的获取到图书信息。(最后的代码为使用进程池,结果发现效果不佳)
步骤简介如下:
步骤1:使用requests库获取到网页源代码
步骤2:使用正则表达式将li标签中的内容获取到一个list中
步骤3:对每个list进行正则表达式匹配,共有两种匹配模式,将匹配到的结果打印输出
备注:可以使用进程池,但是对于小量正则匹配其效果并不如循环匹配理想。
from multiprocessing.pool import Pool
from functools import partial
import requests
import re
# 功能:爬取豆瓣读书中的图书信息
# 作者:zn
# 备注:如果使用一个正则表达式一次从网页结果中匹配,则耗时非常大
def find_li():
"""
从豆瓣读书网页中获取到li标签中的内容
:return:
"""
content = requests.get('https://book.douban.com/').text
pattern=re.compile('<li.*?cover">(.*?)</li>',re.S)
results=re.findall(pattern,content)
return results
def find_result(i,li_results,patterns):
"""
从li_results中每次匹配一个结果
:param i: li_results索引
:param li_results:li标签匹配的结果
:param patterns: 两种匹配模式
:return:
"""
results = re.findall(patterns[0], li_results[i])
if results:
url, img, title, author, year, publisher = results[0]
author = re.sub('\s', '', author)
year = re.sub('\s', '', year)
publisher = re.sub('\s', '', publisher)
print(i,url, img, title, author, year, publisher)
else:
results = re.findall(patterns[1], li_results[i])
if results:
url, img, title, rating, author = results[0]
author = re.sub('\s', '', author)
rating = re.sub('\s', '', rating)
print(i,url, img, title, rating, author)
def find_douban_book():
"""
图书信息有两个种类,根据给定的匹配模式,依次获取各类图书信息。
可以使用进程池,但效果不佳。
:return:
"""
results = find_li()
pattern0 = re.compile(
'<a.*?href="(.*?)".*?<img src="(.*?)".*?alt="(.*?)".*?<div class="author">(.*?)</div>.*?<span class="year">(.*?)</span>.*?publisher">(.*?)</span>.*?</div>',
re.S)
pattern1 = re.compile(
'a.*?href="(.*?)".*?src="(.*?)".*?alt="(.*?)".*?</a>.*?rating">(.*?)</span>.*?<p class="author">(.*?)</p>.*?</div>',
re.S)
patterns = [pattern0, pattern1]
for i in range(len(results)):
find_result(i,results, patterns)
# pool=Pool(maxtasksperchild=1)
# pool.map(partial(find_result,li_results=results,patterns=patterns),[i for i in range(len(results))])
if __name__ == '__main__':
find_douban_book()
爬取结果:
0 https://book.douban.com/subject/30330291/?icn=index-editionrecommend https://img3.doubanio.com/view/subject/m/public/s29890774.jpg 时间中的孩子 [英]伊恩·麦克尤恩 2018-11-1 南海出版公司
1 https://book.douban.com/subject/30362020/?icn=index-editionrecommend https://img3.doubanio.com/view/subject/m/public/s29928663.jpg 幼稚园:今日宜远游 韩寒主编 2018-11 浙江文艺出版社
2 https://book.douban.com/subject/30351554/?icn=index-editionrecommend https://img3.doubanio.com/view/subject/m/public/s29920535.jpg 活好 [日]日野原重明 2018-10-1 人民邮电出版社
3 https://book.douban.com/subject/30348482/?icn=index-editionrecommend https://img3.doubanio.com/view/subject/m/public/s29929080.jpg 红楼梦日历:锦色版·二〇一九 红楼梦精雅生活设计中心 2018-10 中信出版集团
4 https://book.douban.com/subject/30221537/?icn=index-editionrecommend https://img3.doubanio.com/view/subject/m/public/s29895041.jpg 奥斯曼帝国六百年 [英]帕特里克·贝尔福 2018-10 中信出版集团·新思文化
5 https://book.douban.com/subject/30282306/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29881481.jpg 泰坦的女妖 [美]库尔特·冯内古特 2018-10 上海译文出版社
6 https://book.douban.com/subject/30297216/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29881632.jpg 克里米亚战争 [英]奥兰多·费吉斯 2018-10 南京大学出版社
7 https://book.douban.com/subject/30353758/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29904181.jpg 逐星记 陆烨华 2018-11 新星出版社
8 https://book.douban.com/subject/30156802/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29916566.jpg 帝国 [波]雷沙德·卡普钦斯基 2018-10 生活·读书·新知三联书店
9 https://book.douban.com/subject/30282307/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29909296.jpg 厨房太平记 [日]谷崎润一郎 2018-11 上海译文出版社
10 https://book.douban.com/subject/30322198/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29927769.jpg 社会主义与“自然” 朱羽 2018-10 北京大学出版社
11 https://book.douban.com/subject/30297416/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29817722.jpg 雷沙革村的读墨人 〔荷兰〕托马斯·奥尔德·赫维尔特 2018-10-1 东方出版社
12 https://book.douban.com/subject/30340107/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29926814.jpg 直觉泵和其他思考工具 丹尼尔•丹尼特(DanielC.Dennett) 2018-11-1 浙江教育出版社
13 https://book.douban.com/subject/30284021/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29880076.jpg 天堂的喷泉 [英]阿瑟·克拉克 2018-11-1 四川科学技术出版社
14 https://book.douban.com/subject/30264643/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29869605.jpg 民粹主义大爆炸 [美]约翰·朱迪斯 2018-11-1 中信出版集团·见识城邦
15 https://book.douban.com/subject/30252310/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29909562.jpg 犯罪小说集 [日]吉田修一 2018-10 上海文艺出版社
16 https://book.douban.com/subject/30357968/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29902115.jpg 郑渊洁家庭教育课 郑渊洁 2018-11 天津人民出版社
17 https://book.douban.com/subject/26905155/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29917214.jpg 九故事 J·D·塞林格 2018-10-1 译林出版社
18 https://book.douban.com/subject/30372295/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29916759.jpg 旭日残阳 桑兵 2018-11 广西师范大学出版社
19 https://book.douban.com/subject/30345416/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29904087.jpg 铁浆 朱西甯 2018-10 九州出版社
20 https://book.douban.com/subject/30281339/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29917943.jpg 万物皆数 [法]米卡埃尔·洛奈(MickaëlLaunay) 2018-12 北京联合出版公司
21 https://book.douban.com/subject/30318719/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29910528.jpg 电幻国度 [瑞典]西蒙·斯托伦哈格 2018-10 浙江文艺出版社
22 https://book.douban.com/subject/30364892/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29908936.jpg 塑造神圣 包慧怡 2018-10 上海社会科学院出版社
23 https://book.douban.com/subject/30365801/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29909704.jpg 冷场 李诞 2018-11-20 四川文艺出版社
24 https://book.douban.com/subject/30324826/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29879114.jpg 心碎博物馆 〔克罗地亚〕奥林卡·维斯蒂卡、德拉任·格鲁比希奇 2018-10-25 北京联合出版公司
25 https://book.douban.com/subject/30257742/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29902044.jpg 奥麦罗斯 [圣卢西亚]德里克·沃尔科特 2018-10 广西人民出版社
26 https://book.douban.com/subject/30301627/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29888537.jpg 布鲁克林的巴别塔 [克罗地亚]达尼耶尔•杰杰 2018-12 后浪|花山文艺出版社
27 https://book.douban.com/subject/30329049/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29918201.jpg 中正之笔 [美]倪雅梅 2018-10 江苏人民出版社
28 https://book.douban.com/subject/30255679/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29911318.jpg 远处的拉莫 胡迁 2018-11 译林出版社
29 https://book.douban.com/subject/30356081/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29923776.jpg 奈飞文化手册 [美]帕蒂·麦考德 2018-10-1 浙江教育出版社
30 https://book.douban.com/subject/30346621/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29895367.jpg 正午时踏进光焰 郭爽 2018-11 新星出版社
31 https://book.douban.com/subject/30324016/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29917197.jpg 画中有猫 [英]德斯蒙德·莫里斯 2018-11-5 新星出版社
32 https://book.douban.com/subject/30358366/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29918538.jpg 张大小姐 [美]洪晃 2018-11-1 浙江文艺出版社
33 https://book.douban.com/subject/30244068/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29921776.jpg 腐败与政府 [美]苏珊·罗丝-阿克曼 / [美]邦妮·J.帕利夫卡 2018-10-31 中信出版社
34 https://book.douban.com/subject/30254236/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29917244.jpg 4 3 2 1 [美]保罗·奥斯特 2018-11 理想国丨九州出版社
35 https://book.douban.com/subject/30353486/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29897337.jpg 认知天性 [美]PeterC.Brown / [美]HenryL.RoedigerIII / [美]MarkA.McDaniel 2018-10 中信出版社
36 https://book.douban.com/subject/30338759/?icn=index-latestbook-subject https://img1.doubanio.com/view/subject/m/public/s29899288.jpg 雷切帝国:正义号的觉醒 [美]安·莱基 2018-10-1 上海文艺出版社
37 https://book.douban.com/subject/30355421/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29917590.jpg 原节子 徐辰 2018-11 新星出版社
38 https://book.douban.com/subject/30231924/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29905205.jpg 沃普萧丑闻 [美]约翰·契弗 2018-10 译林出版社
39 https://book.douban.com/subject/30346791/?icn=index-latestbook-subject https://img3.doubanio.com/view/subject/m/public/s29890012.jpg 看见孩子,看见自己 【英】A.H.布拉夫曼著 2018-11 北京日报出版社
40 https://book.douban.com/subject/30193594/?icn=index-topchart-subject https://img3.doubanio.com/view/subject/m/public/s29840340.jpg 遮蔽的天空 8.2 作者:[美]保罗·鲍尔斯
41 https://book.douban.com/subject/30300327/?icn=index-topchart-subject https://img3.doubanio.com/view/subject/m/public/s29845861.jpg 料理图鉴 9.1 作者:[日]越智登代子著/平野惠理子绘
42 https://book.douban.com/subject/30336863/?icn=index-topchart-subject https://img3.doubanio.com/view/subject/m/public/s29890136.jpg 回答不了 8.9 作者:匡扶
43 https://book.douban.com/subject/30219710/?icn=index-topchart-subject https://img3.doubanio.com/view/subject/m/public/s29889153.jpg 日本设计六十年 8.8 作者:[日]内田繁
44 https://book.douban.com/subject/30339988/?icn=index-topchart-subject https://img1.doubanio.com/view/subject/m/public/s29888408.jpg 无中生有 9.0 作者:刘天昭
45 https://book.douban.com/subject/30266273/?icn=index-topchart-subject https://img3.doubanio.com/view/subject/m/public/s29860640.jpg 写作这门手艺 7.6 作者:[美]约翰·麦克菲
46 https://book.douban.com/subject/30338769/?icn=index-topchart-subject https://img1.doubanio.com/view/subject/m/public/s29888548.jpg 梦的化石 8.7 作者:[日]今敏
47 https://book.douban.com/subject/30314653/?icn=index-topchart-subject https://img1.doubanio.com/view/subject/m/public/s29869019.jpg 韭菜的自我修养 6.9 作者:李笑来
48 https://book.douban.com/subject/30316746/?icn=index-topchart-subject https://img1.doubanio.com/view/subject/m/public/s29902247.jpg 面具后的女人 7.8 作者:[法]柯莱特
49 https://book.douban.com/subject/30329569/?icn=index-topchart-subject https://img3.doubanio.com/view/subject/m/public/s29872673.jpg 人类愚蠢辞典 7.4 作者:[意大利]皮耶尔乔治·奥迪弗雷迪