# -*- coding: utf-8 -*-

import requests

import re

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

class Spider(object):

def __init__(self):

print('开始爬取豆瓣图书top250的内容。。。。。。')

# 传入url,返回网页源代码

def getSourceCode(self, url):

html = requests.get(url)

return html.text

# 从源代码中提取出我们需要的内容块:{书名、作者出版社等、评分、评价人数}。

def getEveryBookContent(self, sourceCode):

everyBookContent = re.findall('

', sourceCode, re.S)

# everyBookContent = re.findall('

(.*?)

(.*?)

(.*?)

', sourceCode, re.S)

return everyBookContent

# 从内容块中提取出数据

def getBookInfo(self, eachBookContent):

bookInfo = {}

# bookInfo['title'] = re.subn('( |\n|
|?span.*?>)', "", re.search('(.*?)', eachBookContent, re.S).group(1))[0]

bookInfo['title'] = re.sub('( |\n|
|?span.*?>)', "", re.search('(.*?)', eachBookContent, re.S).group(1))

bookInfo['author'] = re.search('

(.*?)

', eachBookContent, re.S).group(1)

bookInfo['discussNum'] = re.sub('( |\n|
)', "", re.search('\((.*?)\)', eachBookContent, re.S).group(1))

bookInfo['score'] = re.search('(.*?)', eachBookContent, re.S).group(1)

return bookInfo

# 将结果保存到文件

def saveBookInfo(self, bookList):

f = open("bookList.txt", "a")

for each in bookList:

f.writelines('书 名:\t {}\n'.format(each['title']))

f.writelines('作 者:\t {}\n'.format(each['author']))

f.writelines('评论数:\t {}\n'.format(each['discussNum']))

f.writelines('评 分:\t {}\n\n'.format(each['score']))

f.close()

def start(self, url):

sourceCode = self.getSourceCode(url)

everyBookContent = self.getEveryBookContent(sourceCode)

bookList = []

for each in everyBookContent:

bookList.append(self.getBookInfo(each))

self.saveBookInfo(bookList)

if __name__ == '__main__':

douban = Spider()

url = 'http://book.douban.com/top250?start=0'

i = 0

while i <= 225:

url = 'http://book.douban.com/top250?start={}'.format(i)

douban.start(url)

i += 25

【Python数据分析】Python3操作Excel-以豆瓣图书Top250为例

本文利用Python3爬虫抓取豆瓣图书Top250,并利用xlwt模块将其存储至excel文件,图片下载到相应目录.旨在进行更多的爬虫实践练习以及模块学习. 工具 1.Python 3.5 2.Bea ...

Python 2&period;7&lowbar;利用xpath语法爬取豆瓣图书top250信息&lowbar;20170129

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

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

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

Python 2&period;7获取网站源代码的几种方式&lowbar;20160924

#coding:utf-8 import urllib2,cookielib if __name__ == '__main__': root_url='https://www.baidu.com/' ...

【Python数据分析】Python3多线程并发网络爬虫-以豆瓣图书Top250为例

基于上两篇文章的工作 [Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 [Python数据分析]Python3操作Excel(二) 一些问题的解决与优化 已经正确地实现 ...

Python爬虫-爬取豆瓣图书Top250

豆瓣网站很人性化,对于新手爬虫比较友好,没有如果调低爬取频率,不用担心会被封 IP.但也不要太频繁爬取. 涉及知识点:requests.html.xpath.csv 一.准备工作 需要安装reques ...

python爬虫之小说网站--下载小说&lpar;正则表达式&rpar;

python爬虫之小说网站--下载小说(正则表达式) 思路: 1.找到要下载的小说首页,打开网页源代码进行分析(例:https://www.kanunu8.com/files/old/2011/244 ...

python爬虫之天气预报网站--查看最近&lpar;15天&rpar;的天气信息&lpar;正则表达式&rpar;

python爬虫之天气预报网站--查看最近(15天)的天气信息(正则表达式) 思路: 1.首先找到一个自己想要查看天气预报的网站,选择自己想查看的地方,查看天气(例:http://www.tianqi ...

python爬虫之12306网站--火车票信息查询

python爬虫之12306网站--火车票信息查询 思路: 1.火车票信息查询是基于车站信息查询,先完成车站信息查询,然后根据车站信息查询生成的url地址去查询当前已知出发站和目的站的所有车次车票信息 ...

随机推荐

Maven的pom报maven-surefire-plugin&colon;pom&colon;2&period;12&period;4

新建Maven项目,报错: Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 from htt ...

Spark Streaming、HDFS结合Spark JDBC External DataSouces处理案例

场景:使用Spark Streaming接收HDFS上的文件数据与关系型数据库中的表进行相关的查询操作: 使用技术:Spark Streaming + Spark JDBC External Data ...

HttpWebRequest中的KeepAlive

一直不是非常理解.NET中HttpWebRequest的KeepAlive属性有何用处,看了这篇文章就清楚了! http://www.cnblogs.com/lwzz/archive/2011/08/ ...

MySQL高效获取记录总数

通常mysql获取查询记录总数我们使用如下语句: SELECT COUNT(*) FROM users WHERE k='avs';  或:SELECT id FROM goods WHERE k=' ...

springmvc实现long-pulling技术

背景介绍: 项目中有一个通讯模块,本来是用websocket全双工技术实现的,但IE10下面不支持websocket,而国内的360.2345浏 览器封装的所有是IE10下面的内核,考虑到站点在国内的 ...

XJOI1559树转二叉树

树转二叉树 将一棵树转化成二叉树. 输入格式: 输入的信息,第一行一个数n,(n<=1000)是树的结点数,以下n行,第i+1行是第i个结点的信息,第一个整数,是该结点的特征数值,后列出所有孩子 ...

WPF中DataGrid垂直滚动条滚动后导致每行CheckBox选择错乱

问题: WPF的DataGrid中出现选取或者多选以及单选的时候,出现滚动条的时候,如果发生了滚动,默认情况下就会出现已经选择的CheckBox错乱.这样的原因何在? 解决方案: 经过查阅资料,了解到 ...

持续更新:从零开始的php学习生活

其实也不是真的从零开始,在此之前我还是一边研究博学(博客美化)一边学的CSS.HTML.JavaScript的,相关内容可以戳这里. 看本文之前你最好稍微熟悉一下HTML.JavaScript什么的. ...

Docker 使用 Dockerfile 构建自己的镜像

可以使用Dockerfile的配置文件方式进行构建自己的镜像 下面利用docker构建一个Caddy web服务器 构建脚本 Dockerfile有自己的命令,下面使用了一些比较常用的命令,更多的Do ...

React(七)独立组件间的共享Mixins

(1)ES6的使用 (https://github.com/brigand/react-mixin) 下载依赖包 npm i react-mixin --save (2)导入react-mixin包 ...

python获取网站代码_python爬虫1——获取网站源代码(豆瓣图书top250信息)相关推荐

  1. python爬虫1——获取网站源代码(豆瓣图书top250信息)

    # -*- coding: utf-8 -*- import requests import re import sys reload(sys) sys.setdefaultencoding('utf ...

  2. 爬虫python下载文献代码_Python爬虫案例:爬取微信公众号文章

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 文章转载于公众号:早起Python 作者:陈熹 大家好,今天我们来讲点Selenium自动化,你是 ...

  3. java爬虫爬豆瓣图书,十一. 爬虫实战(Xpath)- 豆瓣图书TOP250的数据

    爬取网址:https://book.douban.com/top250 爬取信息:书名.书名链接,评价.评价人数.一句话点评 爬书名时,直接复制xpath会遇到一个坑. 这是由于chrome.Fire ...

  4. python判断对错题_Python爬虫自动化获取华图和粉笔网站的错题(推荐)

    这篇博客对于考公人或者其他用华图或者粉笔做题的人比较友好,通过输入网址可以自动化获取华图以及粉笔练习的错题. 粉笔网站 我们从做过的题目组中获取错题 打开某一次做题组,我们首先进行抓包看看数据在哪里 ...

  5. 扇贝python课程打卡_Python爬虫:获取扇贝打卡信息

    # -*- coding: utf-8 -*- """ Created on Tue May 14 2019 @author: YangYang "" ...

  6. python二手交易平台代码_PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)...

    说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...

  7. python 表白程序代码_python抖音表白程序源代码

    本文实例为大家分享了python抖音表白程序的具体代码,供大家参考,具体内容如下 import sys import random import pygame from pygame.locals i ...

  8. python爬虫获取豆瓣图书Top250

    在上一篇博客<python爬虫获取豆瓣电影TOP250>中,小菌为大家带来了如何将豆瓣电影Top250的数据存入MySQL数据库的方法.这次的分享,小菌决定再带着大家去研究如何爬取豆瓣图片 ...

  9. requests 获取div_爬虫系列第五篇 使用requests与BeautifulSoup爬取豆瓣图书Top250

    上一篇我们学习了BeautifulSoup的基本用法,本节我们使用它来爬取豆瓣图书Top250. 一.网页分析 我们爬取的网页的url是https://book.douban.com/top250?i ...

最新文章

  1. python装keras_python – 在anaconda中安装keras时出错. / p KER...
  2. java 模块化_Java 9 新特性 - 模块化 - Java 技术驿站-Java 技术驿站
  3. 【Redis】15.Redis主从复制
  4. 再述Spring AOP 应用场景
  5. SAP UI5 应用开发教程之六 - 了解 SAP UI5 的模块(Module)概念
  6. 怎么在QQ浏览器上使用微信聊天?
  7. Linux笔记-shell遍历数组并判断是否等于某个值
  8. C++ 虚函数表解析(转)
  9. 调用新浪微博显示用户信息
  10. win10连接共享打印机_win7共享出来的打印机部分电脑无法连接的问题
  11. 神经计算棒python_Intel 最新的神经元计算棒Movidius Neural Compute Stick能干什么 ?
  12. Spark集群环境搭建+Maven、SBT编译部署+IDEA开发(一)
  13. 您的计算机配置已更改,你的硬件设置已更改请重启电脑怎么回事
  14. Python常用数字处理基本操作汇总
  15. 上海税前12000税后多少_税前12000元月工资,税后能拿多少
  16. github史上最全教程
  17. 自定义注解以及通过aop实现注解横切(日志)
  18. 给开源社读者的一份信
  19. vue-aplayer的api详细讲解
  20. 魅族u20怎么刷Android,魅族魅蓝U20怎么刷机

热门文章

  1. 基于Mysql 的SQL应用---2021(ZSD版)
  2. Qt: 表格(QTableWidget)隐藏自动生成的序号列(行头)
  3. 无线网的dhcp服务器是什么,关于DHCP服务里的路由器地址租期什么意思
  4. 刘晓燕核心词汇趣讲笔记-第十课
  5. 服务器 消息 22029,解决SQL Server数据库维护计划失败的问题
  6. 基于单片机的5V可调电源系统设计(#0457)
  7. (荐)电子方面不错的论坛 推荐几个电子方面不错的论坛
  8. Java学习之路3——方法定义、调用【重拾Java】
  9. linux 内核 输出,Linux基础命令---dmeg显示内核输出
  10. 如何依靠副业赚钱,应对人到中年的职场危机