//演示地址 http://asizu.sinaapp.com/reptile_douban.php

//数据量不是特别大,没有写抓完数据便停止。 喜欢的朋友拿去自己改改就好了header("Content-Type:text/html;charset=utf-8");define("MYSQL_HOST",SAE_MYSQL_HOST_M);define("MYSQL_NAME","douban");define("MYSQL_USER",SAE_MYSQL_USER);define("MYSQL_PASSWORD",SAE_MYSQL_PASS);define("MYSQL_PORT",SAE_MYSQL_PORT);$action = $_GET[‘url‘];if(!empty($action))

{$data = getLink($action);$data = str_substr(‘

‘,‘

‘,$data);$dataArray = explode(‘

{$bookArray[$key][‘title‘] = str_substr(‘class="title" target="_blank">‘,‘‘,$item);$bookArray[$key][‘rating‘] = str_substr(‘‘,‘‘,$item);$bookArray[$key][‘book_id‘] = str_substr(‘/subject/‘,‘/?from‘,$item);if(!selectBookSaveed($bookArray[$key][‘title‘]))

{

insertMysql($bookArray[$key]);

}//$dataArray[$key] = htmlspecialchars($item);

}$page = explode(‘book?start=‘,$action);$new_url = $page[0] ."book?start=". ($page[1] + 15);//var_dump($page);

// var_dump($bookArray);

}//获取连接

function getLink($url)

{$data = getData($url);return $data;

}//抓取数据的函数

function getData($url)

{//初始化

$ch =curl_init();//设置选项,包括URL

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch,CURLOPT_HEADER,0);

curl_setopt($ch,CURLOPT_USERAGENT,‘Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11‘);//执行并获取HTML文档内容

$output = curl_exec($ch);//释放curl句柄

curl_close($ch);//返回数据

return $output;

}//保存入库

function insertMysql($dataArray)

{$field = "";$value = "";foreach($dataArray as $key => $item)

{$field .= ",".$key;$value .= ",‘".$item."‘";

}$field = substr($field,1,strlen($field)-1);$value = substr($value,1,strlen($value)-1);$sql = "INSERT INTO douban (".$field.") VALUES(".$value.")";//var_dump($sql);

// exit;

$result = mysqlOperation($sql);return $result;

}//查询是否已经录入

function selectBookSaveed($title)

{$sql = "SELECT * FROM douban WHERE title = ‘".$title."‘";$result = mysqlOperation($sql,"select");if(empty($result))

{return false;//未存在

}return true;

}//数据库操作方法

function mysqlOperation($sql,$method = "query")

{$mysqli = newmysqli(

SAE_MYSQL_HOST_M,SAE_MYSQL_USER,SAE_MYSQL_PASS,SAE_MYSQL_DB,SAE_MYSQL_PORT

);if( mysqli_connect_errno() )echo ‘error‘;//return false;

if($method == "select")return mysqli_fetch_assoc($mysqli->query($sql));if($method == "query")return $mysqli->query($sql);

}//字符串截取函数

function str_substr($start, $end, $str)

{$temp = explode($start, $str, 2);$content = explode($end, $temp[1], 2);return $content[0];

}?>

$("#froms").submit();

}

});

php 豆瓣抓取,PHP抓取豆瓣读书爬虫代码相关推荐

  1. 基于Hadoop的豆瓣电影的数据抓取、数据清洗、大数据分析(hdfs、flume、hive、mysql等)、大屏可视化

    目录 项目介绍 研究背景 国内外研究现状分析 研究目的 研究意义 研究总体设计 数据获取 网络爬虫介绍 豆瓣电影数据的采集 数据预处理 数据导入及环境配置 Flume介绍 Hive介绍 MySQL介绍 ...

  2. python爬取豆瓣电影评论_python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法...

    def getHtml(url): """获取url页面""" headers = {'User-Agent':'Mozilla/5.0 ( ...

  3. python爬取二级页面_爬虫代码改进(二)|多页抓取与二级页面

    本文是下面两篇文章的续篇 本系列包括如下内容抓取豆瓣top250一页多个字段 整合成列表 存储为json文件 定义成函数形式 多页抓取之构造url 多页抓取之翻页 抓取二级页面数据 通过生成器优化代码 ...

  4. Python豆瓣电影评论的爬取及词云显示

    Python豆瓣电影评论的爬取及词云显示 课程设计论文链接 前言 开发工具.核心库 系统相关技术介绍 系统分析与设计 系统功能模块组成 实现功能和目标 爬取模块设计 爬取过程中下一页的处理 窗口界面设 ...

  5. python怎么爬取电影海报_豆瓣top250海报原图爬取

    源码见 功能分析 网上爬取豆瓣电影排行很多,但是由于做一个h5画廊需求大量电影素材,而列表与详情页的图片清晰度满足不了要求,所以决定爬取豆瓣原图,在查看是发现需要登陆,然而登陆后原图链接查看并没有任何 ...

  6. 爬虫抓取页面数据原理(php爬虫框架有很多 )

    爬虫抓取页面数据原理(php爬虫框架有很多 ) 一.总结 1.php爬虫框架有很多,包括很多傻瓜式的软件 2.照以前写过java爬虫的例子来看,真的非常简单,就是一个获取网页数据的类或者方法(这里的话 ...

  7. qt爬取网页信息_豆瓣TOP250数据爬取

    一.问题描述 用python爬取网页数据是现在流行的一种快速获取数据的方法,简单快捷.最近小编通过教程学习完成了豆瓣TOP250数据的爬取.下面就简单介绍一下如何用python程序实现豆瓣网页信息的爬 ...

  8. 测试开发Python培训:抓取新浪微博抓取数据-技术篇

    测试开发Python培训:抓取新浪微博抓取数据-技术篇 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的sele ...

  9. python简单爬虫代码-python爬虫超简单攻略,带你写入门级的爬虫,抓取上万条信息...

    原标题:python爬虫超简单攻略,带你写入门级的爬虫,抓取上万条信息 最近经常有人问我,明明看着教程写个爬虫很简单,但是自己上手的时候就麻爪了...那么今天就给刚开始学习爬虫的同学,分享一下怎么一步 ...

  10. 机器人识别抓取笔记(基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计:综述)

    Real-Time Deep Learning Approach to Visual Servo Control and Grasp Detection for Autonomous Robotic ...

最新文章

  1. python有道翻译-Python版有道翻译
  2. java 登录踢出_spring security 4 如何踢出用户?
  3. Andorid应用去google广告
  4. boost::python模块实现使用内置 python 数据类型创建 ndarrays 的示例,并提取成员变量的类型和值测试程序
  5. IdentityServer4 接口说明
  6. c3p0依赖导入失败问题(在使用到c3p0中的ComboPooledDataSource类的时候报错,依赖爆红)
  7. 不用“背”单词,1个方法牢记7000单词:我是如何做到的?
  8. 数组----数组的拷贝、排序、遍历、引用,console交互
  9. android调用日历库,Android学习教程之日历库使用(15)
  10. CCF201503-5 最小花费(100分解题链接)
  11. 苹果Ma视频剪辑软件:DaVinci Resolve Studio (达芬奇调色)
  12. 版本管理-SVN本地版本管理
  13. 如何获取淘宝APP原数据现场教学
  14. 解决vue页面四周有白边的问题
  15. 请问现在好多抖音巨量广告落地页pages.tmall.com的页面如何生成
  16. Java线程状态转化
  17. 【Jmeter-脚本录制】
  18. 呦呦鹿鸣,食野之蒿。【诗经早就预言了屠呦呦的重大发现
  19. Spring Boot多模块包扫描问题
  20. Python 之网络编程之socket(3)hashlib模块

热门文章

  1. 参考文献格式、论文尾注
  2. 这10部功夫片曾拿到金像奖最佳动作设计奖,李连杰主演的就有4部
  3. 神经网络模型的基本原理,神经元网络算法的思想
  4. 数字逻辑实验一 门电路逻辑功能及测试
  5. 基于docker的test-containers环境百宝箱
  6. 从Solidworks模型到UG制工程图
  7. 陶哲轩实分析 4.3 节习题试解
  8. scratch编程三级--小猫和笔合作画正方形
  9. redis实现分布式锁(乞丐版)
  10. kubernetes中容器(pod)间的通信及环境变量设置