爬虫实战_爬取豆瓣图书利用csv库存储
读取csv文件
通过csv.reader()和DictReader()两个函数
reader()函数返回一个迭代器 会包含表头 通过next函数可以跳过,但是它只能通过下标访问数据;
DictReader()函数返回一个字典,不包含表头,可以通过键名访问!!
import csv
# with open('1 (2).csv','r') as fp:
# reader=csv.reader(fp)
# # next(reader)
# for x in reader:
# print(x)
with open('1 (2).csv','r') as fp:
reader=csv.DictReader(fp)
for i in reader:
print(i['学生姓名'])
写入csv文件
两个方法:一个通过writer()函数 一个通过Dictwriter()函数。
writerow() writerows()
都是先将文件通过上面两个函数封装成对象,然后在对csv对象进行操作。
注意Dictwriter()有两个参数一个是文件,另一个是表头(列表),先调用writeheader()函数将表头写进去。
这两个函数都可以写入,看给的数据:如果是元组用第一个函数;给的是字典用第二个函数。
项目
项目说明:爬取豆瓣图片前十页,并用csv库存储下来。
代码如下:
import requests
import csv
from bs4 import BeautifulSoup
header={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36"
}
headers=['书名','相关信息','评分']
def spdier(url):
resp=requests.get(url,headers=header)
text=resp.text
html=BeautifulSoup(text,"lxml")
# print(html.prettify())
alist=html.find_all('a',class_='title')
titles=[]
for a in alist:
title=list(a.stripped_strings)[0]
titles.append(title)
infolist=html.find_all('div',class_='desc')
infos=[]
for info in infolist:
info1=list(info.stripped_strings)[0]
infos.append(info1)
ratelist=html.find_all('span',class_='rating_nums')
rates=[]
for i in ratelist:
rate=list(i.stripped_strings)[0]
rates.append(rate)
books=[]
for i in range(len(rates)):
book={
'书名':titles[i],
'相关信息':infos[i],
'评分':rates[i]
}
books.append(book)
return books
def csv_storage(list_books,filename):
with open(filename,'w',encoding='utf-8',newline='') as fp:
writer=csv.DictWriter(fp,headers)
writer.writeheader()
writer.writerows(list_books)
def main():
base_url="https://www.douban.com/tag/%E5%B0%8F%E8%AF%B4/book?start={}"
books=[]
for i in range(0,136,15):
url=base_url.format(i)
book=spdier(url)
books +=book
csv_storage(books,'豆瓣图片.csv')
if __name__ == '__main__':
main()
总结
今天学习了csv库存储爬取下来的数据,通过这个项目巩固了学习的内容。
爬虫实战_爬取豆瓣图书利用csv库存储的更多相关文章
- python网络爬虫之四简单爬取豆瓣图书项目
一.爬虫项目一: 豆瓣图书网站图书的爬取: import requests import re content = requests.get("https://book.douban.com ...
- python系列之(3)爬取豆瓣图书数据
上次介绍了beautifulsoup的使用,那就来进行运用下吧.本篇将主要介绍通过爬取豆瓣图书的信息,存储到sqlite数据库进行分析. 1.sqlite SQLite是一个进程内的库,实现了自给自足 ...
- Python 2.7_利用xpath语法爬取豆瓣图书top250信息_20170129
大年初二,忙完家里一些事,顺带有人交流爬取豆瓣图书top250 1.构造urls列表 urls=['https://book.douban.com/top250?start={}'.format(st ...
- Python爬虫实战之爬取百度贴吧帖子
大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的任意帖子进行抓取 指定是否只抓取楼主发帖 ...
- requests+正则爬取豆瓣图书
#requests+正则爬取豆瓣图书 import requests import re def get_html(url): headers = {'User-Agent':'Mozilla/5.0 ...
- 爬虫之爬取豆瓣图书名字及ID
from urllib import request from bs4 import BeautifulSoup as bs #爬取豆瓣最受关注图书榜 resp = request.urlopen(' ...
- 爬虫实战——Scrapy爬取伯乐在线所有文章
Scrapy简单介绍及爬取伯乐在线所有文章 一.简说安装相关环境及依赖包 1.安装Python(2或3都行,我这里用的是3) 2.虚拟环境搭建: 依赖包:virtualenv,virtualenvwr ...
- Python爬虫实例:爬取豆瓣Top250
入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...
- Python爬虫入门:爬取豆瓣电影TOP250
一个很简单的爬虫. 从这里学习的,解释的挺好的:https://xlzd.me/2015/12/16/python-crawler-03 分享写这个代码用到了的学习的链接: BeautifulSoup ...
随机推荐
- Linux新建SVN版本库
1.进入svn 版本库(如/www/svn) 2.创建svn 版本库svnadmin create edition 3.进入新建的版本库库目录cd edition 4.进入版本库配置目录cd con ...
- opencv:图形绘制与填充
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...
- wordpress 修改默认分页条数
哎,终于快做完了,今天弄了弄分页,真是网上扒的模板太高级了,把分页和导航的css和js冲突了,终于解决了, 然后有一个模板是三和一排显示的,其他的是单挑显示的,它默认10条,我寻思改成9条,找了半天, ...
- Apache Thrift Learning Notes
简介 Apache Thrift软件框架(用于可扩展的跨语言服务开发)将软件堆栈与代码生成引擎结合在一起,以构建可在C ++,Java,Python,PHP,Ruby,Erlang,Perl,Hask ...
- vue基础笔记
目录 Vue 渐进式 JavaScript 框架 一.走进Vue 二.Vue实例 三.生命周期钩子 四.Vue指令 五.组件 六.Vue-CLI 项目搭建 Vue 渐进式 JavaScript 框架 ...
- 神奇的requestAnimationFrame解决传统定时器bug
可能你还没见过这个东西是个啥,其实他就是类似于setTimeout和setInterval,然而它与setTimeout和setInterval又有所不同,requestAnimationFrame不 ...
- 使用js制作 下拉选择日期列表 (即日期选择器)
上代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <tit ...
- C语言:统计整型变量m中各数字出现的次数,-去掉一个最高分和一个最低分,然后求平均值,(注意最低分和最高分可能有多个数并列)
//统计整型变量m中各数字出现的次数,并存放在数组a中,其中,a[0]存放0出现的次数,a[1]存放1出现的次数. #include <stdio.h> ]) { int i; ; i&l ...
- Linux下如何查看tomcat是否启动、查看tomcat启动日志(转)
在Linux系统下,重启Tomcat使用命令的操作! 1.首先,进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 使用Tomcat关闭命令 ./shutdown.sh ...
- 华水开学第一课&微信支付
由于疫情的延续,导致我们不能及时开学.只能在网上观看华水开学第一课,但是好像正常开学也没有这个哈哈(不记得了) 昨天没有玩到很晚,12点就睡下.大约半个小时睡着了.定了8点的闹钟.起来的时候那是真的困 ...