1、问题描述:

爬取豆瓣读书首页的图书的名称、链接、作者、出版日期,并将爬取的数据存储到Excel表格Douban_I.xlsx中

2、思路分析:

发送请求--获取数据--解析数据--存储数据

1、目标网址:https://book.douban.com/

2、利用requests.get()方法向豆瓣读书首页发送请求,获取首页的HTML源代码

#目标网址
targetUrl = "https://book.douban.com/"
#发送请求,获取响应
response = requests.get(targetUrl).text

3、利用正则re.findall()解析出想要的信息: Name Url Author Date

#编译成正则表达式对象,便于复用该匹配模式
pattern = re.compile('<li.*?title="(.*?)".*?href="(.*?)".*?more-meta.*?author">(.*?)</span>.*?year">(.*?)</span>.*?</li>', re.S)
results = re.findall(pattern, response)

4、将数据存储到Excel表格中

workBook = xlwt.Workbook(encoding='utf-8') #创建Excel表,并确定编码方式
sheet = workBook.add_sheet("Douban_I")
headData = ["书名", "链接", "作者", "出版日期"] #表头信息
for colNum in range(len(headData)):
sheet.write(0, colNum, headData[colNum])
raw = 1
for book in results: #书籍信息:名称、链接、作者、出版日期
# name, url, author, date = book
for column in range(len(book)):
sheet.write(raw, column, book[column].strip())
raw += 1
workBook.save(".\Douban_I.xlsx")

3、效果展示

4、完整代码:

# -* coding: utf-8 *-
# author: wangshx6
# date: 2018-11-04
# description: 爬取豆瓣读书首页的图书的名称、链接、作者、出版日期,并将爬取的数据存储到Excel表格Douban_I.xlsx中 import requests
import re
import xlwt #目标网址
targetUrl = "https://book.douban.com/"
#发送请求,获取响应
response = requests.get(targetUrl).text ''' 利用正则表达式解析出关键内容: Name Url Author Date '''
#re.compile()是将正则字符串编译成正则表达式对象,便于复用该匹配模式
#re.S 多行匹配(换行)
pattern = re.compile('<li.*?title="(.*?)".*?href="(.*?)".*?more-meta.*?author">(.*?)</span>.*?year">(.*?)</span>.*?</li>', re.S)
results = re.findall(pattern, response) #将数据列表存储到Excel表格Douban_I.xlsx中
workBook = xlwt.Workbook(encoding='utf-8')
sheet = workBook.add_sheet("Douban_I")
headData = ["书名", "链接", "作者", "出版日期"] #表头
for colNum in range(len(headData)):
sheet.write(0, colNum, headData[colNum]) raw = 1
for book in results:
# name, url, author, date = book
for column in range(len(book)):
sheet.write(raw, column, book[column].strip())
raw += 1
workBook.save(".\Douban_I.xlsx")

python爬虫:利用正则表达式爬取豆瓣读书首页的book的更多相关文章

  1. Python爬虫实例:爬取豆瓣Top250

    入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...

  2. Python爬虫入门:爬取豆瓣电影TOP250

    一个很简单的爬虫. 从这里学习的,解释的挺好的:https://xlzd.me/2015/12/16/python-crawler-03 分享写这个代码用到了的学习的链接: BeautifulSoup ...

  3. python实例:自动爬取豆瓣读书短评,分析短评内容

    思路: 1.打开书本“更多”短评,复制链接 2.脚本分析链接,通过获取短评数,计算出页码数 3.通过页码数,循环爬取当页短评 4.短评写入到txt文本 5.读取txt文本,处理文本,输出出现频率最高的 ...

  4. python爬虫——利用BeautifulSoup4爬取糗事百科的段子

    import requests from bs4 import BeautifulSoup as bs #获取单个页面的源代码网页 def gethtml(pagenum): url = 'http: ...

  5. Python爬虫实例:爬取猫眼电影——破解字体反爬

    字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...

  6. Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取

    很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...

  7. Python爬虫教程-17-ajax爬取实例(豆瓣电影)

    Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...

  8. 爬虫——正则表达式爬取豆瓣电影TOP前250的中英文名

    正则表达式爬取豆瓣电影TOP前250的中英文名 1.首先要实现网页的数据的爬取.新建test.py文件 test.py 1 import requests 2 3 def get_Html_text( ...

  9. 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

    原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...

随机推荐

  1. java并发编程,通过Future取消任务

    功能:通过Executor框架提供的线程池,提交任务,使用Future取消任务 任务:增长序列号,从0开始隔1s增长1 通过Future指定时间取消任务 IncrementSequence.java ...

  2. 详解__FILE__与$_SERVER['SCRIPT_FILENAME']的区别

    废话不多说 直接上测试代码: <?php //引入的是ceshi4文件夹下的ceshi4.php; require_once './ceshi4/ceshi4.php'; 下面是ceshi4文件 ...

  3. MySQL免安装版中 my-default.ini 的配置

    拷贝一份  “my-default.ini”  文件 重命名为 “my.ini” 这样根目录下就有两个.ini文件了 一个是my-default.ini 一个是my.ini 接下来我们只需修改my.i ...

  4. Ubuntu小工具

    更好的工具 更多的界面风格: https://github.com/anmoljagetia/Flatabulous 更丰富的终端zsh: https://github.com/robbyrussel ...

  5. Linux终端(terminal)清屏命令

    windows CMD终端的清屏命令是cls Linux终端中的清屏命令有 1) clear 2) reset

  6. 显示、更改ubuntu linux主机名(计算机名)

    在bash中输入hostname可以显示计算机名.Linux和windows都可以使用这条指令. 主机名保存在/etc/hostname文件中 需要进入Root权限才可以修改该文件. sudo ged ...

  7. IIS7 http自动跳转到https(通过编辑Web.config实现)

    本文摘自:https://www.cnblogs.com/wxbug/p/7054972.html 1.下载安装URL重写模块:Microsoft URL Rewrite Module 32位:htt ...

  8. May 6th 2017 Week 18th Saturday

    A great ship asks deep water. 巨轮寻深水而航行. A great ship needs deep water so as to get enough buoyancy t ...

  9. [转载]Memcached缓存服务的简单安装

    1.Linux下的安装方法 下载:wget http://memcached.org/latest tar -zxvf memcached-1.x.x.tar.gz cd memcached-1.x. ...

  10. IOS 拦截所有push进来的子控制器

    /** * 能拦截所有push进来的子控制器 */ - (void)pushViewController:(UIViewController *)viewController animated:(BO ...