一.爬虫项目一:
豆瓣图书网站图书的爬取: import requests
import re
content = requests.get("https://book.douban.com/").text
#注:此时我们打印输出结果,可以看到输出我们的网页字符串:
# print(content)
#然后我们编辑匹配豆瓣图书网站抓取图书所用到的正则表达式。
pattern = re.compile(r'<li.*?class="cover".*?href="(.*?)".title.*?class="info".*?class="more-meta".*?class="title">(.*?)</h4>.*?class="author">(.*?)</span>.*?class="year">(.*?)</span>.*?class="publisher">(.*?)</span>.*?</li>',re.S)
#注意,经过测试,我们可以使用.代表空格,然后匹配的元组(.*?)后面最好不要再加.*?,要不然这样容易报错,
#容易匹配不出结果。
results = re.findall(pattern,content)
#然后我们通过re.findall函数就可以匹配出我们想要的结果了。
print(results)
#注,经过测试,我们发现,通过re.findall返回的结果也就是我们获取的结果是一个列表,而每一个列表
#里面的数据都是一个元组,此时我们就可以先通过循环便利的方式先获取到列表里面的个每个元组
for result in results:
print(result)
#注,通过循环遍历的方式,我们就可以获取到列表里面的每个元组,从打印出来的每个元组的信息来看,每个元组
#都有五个元素,他们分别是url,name,author,date,publisher
获取元组里面的数据,我们可以通过位置符号来指定:
如,result[0],result[1],result[2],result[3],result[4],我们也可以直接打印输出:
如:print(result[0],result[1],result[2],result[3],result[4]) 我们也可以通过一一对应的方式,将元组中的各个元素分别赋值给每个变量:
如下所示:
url,name,author,date,publisher = result
然后打印输出:
print(url,name,author,date,publisher) #但是经过测试我们可以发现,其实每个元组里面的值后面都带了一个换行符,导致元组里面的数据取出来的时候
#不是在一行里面显示的,此时我们可以将这些换行符去掉,这里我们有两种方式,可以实现目的:
第一种方式:
#使用strip()的方法,去除字符串周围的空格元素,即可得到我们想要的结果
url = url.strip()
name = name.strip()
author = author.strip()
date = date.strip()
publisher = publisher.strip()
#此时打印输出,就可以得到我们想要的值。
print(url,name,author,date,publisher)
第二种方式:使用re.sub的方法:
#用空字符串来替换我们字符串中的换行符,此时我们用\s来代表换行符,用一个空字符串来替代他,格式如下:
url = re.sub('\s', "", url)
name = re.sub('\s', "", name)
author = re.sub('\s', "", author)
date = re.sub('\s', "", date)
publisher = re.sub('\s', "", publisher)
#此时打印输出,也可以得到我们想要的值。
print(url,name,author,date,publisher)

python网络爬虫之四简单爬取豆瓣图书项目的更多相关文章

  1. Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识

    网站站点的背景调研 1. 检查 robots.txt 网站都会定义robots.txt 文件,这个文件就是给 网络爬虫 来了解爬取该网站时存在哪些限制.当然了,这个限制仅仅只是一个建议,你可以遵守,也 ...

  2. Python网络爬虫与如何爬取段子的项目实例

    一.网络爬虫 Python爬虫开发工程师,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页 ...

  3. 爬虫实战_爬取豆瓣图书利用csv库存储

    读取csv文件 通过csv.reader()和DictReader()两个函数 reader()函数返回一个迭代器 会包含表头 通过next函数可以跳过,但是它只能通过下标访问数据: DictRead ...

  4. 【Python网络爬虫三】 爬取网页新闻

    学弟又一个自然语言处理的项目,需要在网上爬一些文章,然后进行分词,刚好牛客这周的是从一个html中找到正文,就实践了一下.写了一个爬门户网站新闻的程序 需求: 从门户网站爬取新闻,将新闻标题,作者,时 ...

  5. 精通python网络爬虫之自动爬取网页的爬虫 代码记录

    items的编写 # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentati ...

  6. Python 网络爬虫实战:爬取 B站《全职高手》20万条评论数据

    本周我们的目标是:B站(哔哩哔哩弹幕网 https://www.bilibili.com )视频评论数据. 我们都知道,B站有很多号称“镇站之宝”的视频,拥有着数量极其恐怖的评论和弹幕.所以这次我们的 ...

  7. python系列之(3)爬取豆瓣图书数据

    上次介绍了beautifulsoup的使用,那就来进行运用下吧.本篇将主要介绍通过爬取豆瓣图书的信息,存储到sqlite数据库进行分析. 1.sqlite SQLite是一个进程内的库,实现了自给自足 ...

  8. Python 2.7_利用xpath语法爬取豆瓣图书top250信息_20170129

    大年初二,忙完家里一些事,顺带有人交流爬取豆瓣图书top250 1.构造urls列表 urls=['https://book.douban.com/top250?start={}'.format(st ...

  9. requests+正则爬取豆瓣图书

    #requests+正则爬取豆瓣图书 import requests import re def get_html(url): headers = {'User-Agent':'Mozilla/5.0 ...

随机推荐

  1. jsoup 提取 html 中的所有链接、图片和媒体

    原文:http://www.open-open.com/code/view/1420729333515 package org.jsoup.examples; import org.jsoup.Jso ...

  2. JVM监控工具:jps、jstat、jinfo、jmap、jhat、jstack使用介绍

    转载:http://outofmemory.cn/java/jvm/jvm-tools-jps-jstat-jinfo-jmap-jhat-jstack 一.jps(JVM Process Statu ...

  3. IPTABLES基本例子

    iptables –F #删除已经存在的规则 iptables -P INPUT DROP #配置默认的拒绝规则.基本规则是:先拒绝所有的服务,然后根据需要再添加新的规则. iptables -A I ...

  4. Highways POJ 2485【Prim】

    Description The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has no public h ...

  5. hdoj 4790 Just Random 【数学】

    题目:hdoj 4790 Just Random 题意:给你两个闭区间[a,b],[c,d],分别从中等可能的跳出 x 和 y ,求(x+y)%p == m的概率 分析: 假如是[3,5] [4,7] ...

  6. [转] When to use what language and why

    Published by Seraphimsan Oct 13, 2010 (last update: Oct 14, 2010) When to use what language and why ...

  7. aspx后台引用不到服务器控件

    从其他地方拷贝的页面到自己的项目,后台CS代码引用hidden时,提示找不到,百度,发现可能是网站项目和Web应用程序的区别,右键aspx转化为Web应用程序即可.

  8. Gson转换Json串为对象报java.lang.NoClassDefFoundError

    解决方法: 1.右键项目 ---> properties ----> java buildpath ---> order and export 2. 勾选 gson-x.x.x.ja ...

  9. 正则表达式ab?c匹配的字符串是?(B)

    A:abcd B:abc C:abcbc D:aEbc

  10. 使用buildroot搭建linux文件系统【转】

    本文转载自:http://blog.csdn.net/metalseed/article/details/45423061 (文件系统搭建,强烈建议直接用buildroot,官网上有使用教程非常详细b ...