C++ 提取网页内容系列之五 整合爬取豆瓣读书

工作太忙 没有时间细化了 就说说 主要内容吧
下载和分析漫画是分开的
下载豆瓣漫画页面是使用之前的文章的代码
见http://www.cnblogs.com/itdef/p/4171179.html
http://www.cnblogs.com/itdef/p/4081963.html
注意 豆瓣网是https
下载后进行页面分析
fstream fs(szfileName);
stringstream ss; // 创建字符串流对象
ss << fs.rdbuf(); // 把文件流中的字符输入到字符串流中
fs.close();
string str = ss.str(); // 获取流中的字符串
页面不大 载入到string中 如果是UTF8 还需要进行GBK到UTF8的转换
然后使用正则 摘出每个漫画索引信息 存入vector<string>
string strRegex = "<li class=\"subject-item\">.*?</li>";
vector<string> vstr;
regex regExpress(strRegex);
smatch ms;
try {
while (regex_search(strText, ms, regExpress))
{
for (string::size_type i = 0; i < ms.size(); ++i)
{
vstr.push_back(ms.str(i));
}
strText = ms.suffix().str();
}
}
catch (exception& e)
{
cerr << e.what() << endl;
return vstr;
}
然后在对每本书的信息进行分析 解析出 书本名 简介 评分等
由于这些信息都是有固定标签 用正则反而麻烦 所以使用的字符串查找
basic_string <char>::size_type keyWordStart = s.find("title=\"");
basic_string <char>::size_type keyWordEnd = s.find("\"", keyWordStart + sizeof("title=\"")-1);
if ((keyWordStart != string::npos) && (keyWordEnd != string::npos) && (keyWordEnd > keyWordStart))
{
string strKeyWord = s.substr(keyWordStart+ sizeof("title=\"") - 1, keyWordEnd - keyWordStart- sizeof("title=\"")+1);
cout << strKeyWord << endl;
}
最后结果如图

C++ 提取网页内容系列之五 整合爬取豆瓣读书的更多相关文章
- python爬虫:利用正则表达式爬取豆瓣读书首页的book
1.问题描述: 爬取豆瓣读书首页的图书的名称.链接.作者.出版日期,并将爬取的数据存储到Excel表格Douban_I.xlsx中 2.思路分析: 发送请求--获取数据--解析数据--存储数据 1.目 ...
- Python爬虫使用lxml模块爬取豆瓣读书排行榜并分析
上次使用了BeautifulSoup库爬取电影排行榜,爬取相对来说有点麻烦,爬取的速度也较慢.本次使用的lxml库,我个人是最喜欢的,爬取的语法很简单,爬取速度也快. 本次爬取的豆瓣书籍排行榜的首页地 ...
- Python爬虫爬取豆瓣读书
一,准备工作. 工具:win10+Python3.6 爬取目标:爬取图中红色方框的内容. 原则:能在源码中看到的信息都能爬取出来. 信息表现方式:CSV转Excel. 二,具体步骤. 先给出具体代码吧 ...
- scrapy框架爬取豆瓣读书(1)
1.scrapy框架 Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试 ...
- python实例:自动爬取豆瓣读书短评,分析短评内容
思路: 1.打开书本“更多”短评,复制链接 2.脚本分析链接,通过获取短评数,计算出页码数 3.通过页码数,循环爬取当页短评 4.短评写入到txt文本 5.读取txt文本,处理文本,输出出现频率最高的 ...
- 【转】爬取豆瓣电影top250提取电影分类进行数据分析
一.爬取网页,获取需要内容 我们今天要爬取的是豆瓣电影top250页面如下所示: 我们需要的是里面的电影分类,通过查看源代码观察可以分析出我们需要的东西.直接进入主题吧! 知道我们需要的内容在哪里了, ...
- 爬虫系列(十) 用requests和xpath爬取豆瓣电影
这篇文章我们将使用 requests 和 xpath 爬取豆瓣电影 Top250,下面先贴上最终的效果图: 1.网页分析 (1)分析 URL 规律 我们首先使用 Chrome 浏览器打开 豆瓣电影 T ...
- 爬虫系列(十一) 用requests和xpath爬取豆瓣电影评论
这篇文章,我们继续利用 requests 和 xpath 爬取豆瓣电影的短评,下面还是先贴上效果图: 1.网页分析 (1)翻页 我们还是使用 Chrome 浏览器打开豆瓣电影中某一部电影的评论进行分析 ...
- 爬虫系列1:Requests+Xpath 爬取豆瓣电影TOP
爬虫1:Requests+Xpath 爬取豆瓣电影TOP [抓取]:参考前文 爬虫系列1:https://www.cnblogs.com/yizhiamumu/p/9451093.html [分页]: ...
随机推荐
- NTP搭建
NTP(Network Time Protocol,网络时间协议),用于同步它所有客户端时钟的服务.NTP服务器将本地系统的时钟与一个公共的NTP服务器同步然后作为时间主机提供服务,使本地网络的所有客 ...
- 网络之TCP握手总结
目录: 31.Tcp握手的一些问题? 21.Tcp三次握手及SYN攻击: 四次握手? 为什么建立连接是三次握手,而关闭连接却是四次挥手? 13.TCP释放连接四次握手 12.TCP建立连接三次握手 1 ...
- 20165312 实验一 Java开发环境的熟悉
20165312 实验一 Java开发环境的熟悉 一.实验内容及步骤 (一)使用JDK编译.运行简单的Java程序 Ctrl+Shift+T打开终端 输入cd cxgg20165312/test进入目 ...
- 知识点:spring 完全手册
什么是spring spring是一个开源框架,为简化企业级开发而生,使用spring可以使简单的java bean 实现以前只有EJG才能实现的功能. Spring是一个轻量级的控制反转(IoC)和 ...
- 02-Response简单响应报文
package com.day5; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputSt ...
- Springboot Download file
@RequestMapping(value = "/downloadSvt") public ResponseEntity<FileSystemResource> ex ...
- Sklearn (一) 监督学习
本系列博文是根据SKlearn的一个学习小结,并非原创! 1.直接学习TensorFlow有点不知所措,感觉需要一些基础知识做铺垫. 2.之前机器学习都是理论<Ng机器学习基础>+底层 ...
- Ubuntu16.04下修改MySQL数据的默认存储位置
由于在Linux下MySQL默认是存储在/var/lib/mysql目录下,mysql的数据会非常大,由于/var所划分的空间不够大,所以我们需要将mysql数据存放路径修改一下,放到大分区里面,以便 ...
- 【JVM底层策略 一】GC roots如何判断对象不可达
查找内存中不再使用的对象 引用计数法 引用计数法就是如果一个对象没有被任何引用指向,则可视之为垃圾.这种方法的缺点就是不能检测到环的存在. 2.根搜索算法 根搜索算法的基本思路就是通过一系列名为”GC ...
- python:选房抽签小工具
1.房间号和姓名写在house_name.xls的house标签页中[注意!名字均不要改动]2.运行house.py3.当前同目录下会生成result.xls,即为结果:程序运行过程中不要打开该文件, ...