一.爬虫项目一:
豆瓣图书网站图书的爬取: 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. 解决maven Generating project in Interactive mode

    在idea建一个基于maven结构的web项目时,cmd输出卡死在Generating project in Interactive mode不动了 用命令mvn archetype:generate ...

  2. 选带傅里叶变换(zoom-fft)

    选带傅里叶变换的原理大家能够看书.大致的步骤为 移频 (将选带的中心频率移动到零频) 数字低通滤波器  (防止频率混叠) 又一次採样  (将採样的数据再次间隔採样,间隔的数据取决于分析的带宽,就是放大 ...

  3. Cocos2d-x 3.1.1 学习日志12--一Cocos2dx3.1.1移植到Android平台的方法(最实用最有效的!!)

    须要用到工具(依照顺序): 1.JDK 2.NDK 3.ANT 4.Adt-bundle-windows 将JDK文件夹下的bin文件夹路径加入到系统环境变量中. 解压NDK 解压Adt-bundle ...

  4. iOS7获取UUID以及转换MD5

    近期项目开发,运用到要获取UUID转MD5,可是iOS7不能使用获取的UDID的接口(涉及到隐私),获取MAC地址的方式的接口在iOS7下也废弃了.眼下可能的就是获取UUID了,可是在iOS7下,UU ...

  5. 【leetcode】Word Break(python)

    思路是这种.我们从第一个字符開始向后依次找,直到找到一个断句的地方,使得当前获得的子串在dict中,若找到最后都没找到.那么就是False了. 在找到第一个后,接下来找下一个断句处,当然是从第一个断句 ...

  6. VMnet1和VMnet8 未识别的网络的解决方法

    我的系统是win7 64位,它居然不能识别VMnet1和VMnet8,在网上找了些资料,发现所有资料都是一样的.不过事实证明是正确的. 解决办法: 1,在运行中输入regedit 2,进入注册表[HK ...

  7. Spring Cloud Sleuth 中id的使用

    Spring Cloud Sleuth采用的是Google的开源项目Dapper的专业术语. Span:基本工作单元,发送一个远程调度任务 就会产生一个Span,Span是一个64位ID唯一标识的,T ...

  8. js控制页面显示

    两个菜单切换显示页面内容: js控制代码, /** JS初始化 **/ $(document).ready(function() { $('#email_btn').click(function(){ ...

  9. HDU1160 FatMouse's Speed —— DP

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1160 FatMouse's Speed Time Limit: 2000/1000 MS ...

  10. JS处理空格

    JS处理空格 2010-10-27 11:48:32|  分类: 技术-JS |  标签:js  空格  |字号 订阅     /*删除两侧空格*/ function trim(ui){        ...