PHP爬取糗事百科首页糗事
PHP爬取糗事百科首页糗事
突然想获取一些网上的数据来玩玩,因为有SAE的MySql数据库,让它在那呆着没有什么卵用!于是就开始用PHP编写一个爬取糗事百科首页糗事的小程序,数据都保存在MySql中,岂不是很好玩!
说干就干!首先确定思路
获取HTML源码--->解析HTML--->保存到数据库
没有什么难的
1、创建PHP文件“getDataToDB.php”,
2、获取指定URL的HTML源码
这里我用的是curl函数,详细内容参见PHP手册
代码为
<span new="" style="font-family:Times">// 获取对应链接的HTMLCODE function GetHtmlCode($url) { $ch = curl_init (); // 初始化一个cur对象 curl_setopt ( $ch, CURLOPT_URL, $url ); // 设置需要抓取的网页 curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); // 设置crul参数,要求结果保存到字符串中还是输出到屏幕上 curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 1000 ); // 设置链接延迟 $HtmlCode = curl_exec ( $ch ); // 运行curl,请求网页 return $HtmlCode; }</span>
这里我没有能力使用正则表达式,就在网上海搜,终于找到这个,就像Java使用Jsoup(使用Jsoup解析滁州学院官网获取新闻列表)一样,具体参见BLOG
代码如下
<span new="" style="font-family:Times">function getFmlDataToDB() { $link = mysql_connect ( SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS ); // 获取源码 $html = str_get_html ( GetHtmlCode ( http://www.qiushibaike.com/ ) ); if ($link) { mysql_select_db ( SAE_MYSQL_DB, $link ); mysql_query ( 'set names utf8' ); // class=article block untagged mb15 foreach ( $html->find ( 'div[class=article block untagged mb15]' ) as $per ) { $z = null; $t = null; $w = null; $d = null; $p = null; $ds = null; $ps = null; // //作者 $author = $per->find ( 'div[class=author]' ); if ($author != null) { $a = $author [0]->find ( 'a' ); $z = $a [1]->innertext; } else { $z = 'no author'; } // 头像链接 if ($author != null) { $icon = $author [0]->find ( 'a' ); $t = $icon [0]->src->innertext; } else { $t = '...............'; } // 文章内容 $content = $per->find ( 'div[class=content]' ); $w = $content [0]->innertext; // 点赞数 $vote1 = $per->find ( 'div[class=stats]' ); $vote2 = $vote1 [0]->find ( 'span[class=stats-vote]' ); $vote3 = $vote2 [0]->find ( 'i[class=number]' ); $d = $vote3 [0]->innertext; // 评论数 $comments1 = $vote1 [0]->find ( 'span[class=stats-comments]' ); $comments2 = $comments1 [0]->find ( 'a[class=qiushi_comments]' ); $comments3 = $comments2 [0]->find ( 'i[class=number]' ); $p = $comments3 [0]->innertext; // 顶 数 $up_down = $per->find ( 'div[class=stats-buttons bar clearfix]' ); $up_down1 = $up_down [0]->find ( 'ul' ); $li = $up_down1 [0]->find ( 'li' ); $up = $li [0]->find ( 'span[class=number hidden]' ); $ds = $up [0]->innertext; // 拍 数 $down = $li [1]->find ( 'span[class=number hidden]' ); $ps = $down [0]->innertext; } } else { echo '数据库链接KO'; } }</span>
4、创建数据库,将数据插入到数据库中
这里我使用的SAE中的MySQL,具体的连接方发参见使用PHP连接SAE中的MySql数据库
需要注意的就是编码格式,区要在执行语句前加上这样一句话
<span style="font-family:Microsoft">mysql_query ( 'set names utf8' );</span>
<span style="font-family:Microsoft"> $sql = INSERT INTO `app_bmhjqs`.`db_fml` (`id`, `author`, `icon_url`, `content`, `vote`, `comments`, `up`, `down`) VALUES (NULL, '$z', '$t', '$w', '$d', '$p', '$ds', '$ps');; // 解决乱码 mysql_query ( 'set names utf8' ); $result = mysql_query ( $sql );</span>
这样一来,获取--->解析--->插入就完成了,效果就是运行一次PHP文件,数据库就添加了糗事百科首页上的糗事!我想可不可以写个定时器,每隔一定时间就运行一次代码,这一点在java我可以实现,在php我不会,毕竟是个没长毛的小鸟!百度吧。。。搜到这样的写法
<span new="" style="font-family:Times">// 定时器 // ignore_user_abort (); // run script. in background // set_time_limit ( 0 ); // run script. forever // $interval = 30; // do every 15 minutes.. // do { // echo date ( 'Y-m-d H:i:s', time () ); // echo '写入数据库'; // //getFmlDataToDB (); // } while ( true );</span>
今天早上,我迫不及待的打开电脑,打开SAE数据库,情况如下:
额滴神!受不鸟了,赶紧把定时器关掉了,写了个按钮触发事件!这样下去,数据库会被挤满的!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何設定谷歌瀏覽器首頁?谷歌瀏覽器是如今最受歡迎的網頁瀏覽器軟體,這款瀏覽器擁有簡潔高效的特性,神獸用戶喜歡,在使用瀏覽器的時候,不同的人有不同的設定喜好,有人喜歡將Google瀏覽器設定成預設首頁,也有人喜歡將首頁設定成其他搜尋引擎,那麼具體要在哪裡設定呢。接下來小編就帶給大家快速設定Google瀏覽器首頁方法,希望能帶給大家幫助。快速設定Google瀏覽器首頁方法1、開啟Google瀏覽器(如圖)。 2.點選介面右上角的選單鍵(如圖)。 3、選擇「設定」選項(如圖)。 4、在設定選單中,找到「搜尋引擎」(如

Google瀏覽器首頁變360了怎麼辦?谷歌瀏覽器是一款簡潔便利的瀏覽器,不過許多小夥伴在使用的過程中卻發現簡潔的首頁被替換成了360首頁,想要將它恢復為原來的樣式,那麼應該怎麼設定呢?下面就由小編為大家帶來Google瀏覽器首頁恢復的方法。 解決方法 1、先開啟Google瀏覽器。 2、想要改成默認,那就點選右上角的三個點。 3、點選【設定】開啟設定頁面。 4、點選【啟動時】。 5、如圖所示,這裡【開啟特定網頁或一組網頁】是360導航的網址。 6、點選360導航右側的三個點。 7、點選【移除】。

UniApp實作首頁與導覽頁的設計與開發方法一、簡介UniApp是一款基於Vue.js框架建構的跨平台開發工具,能夠實作一套程式碼編譯出多個平台的應用程式。在UniApp中,首頁和導覽頁是開發應用程式時必備的兩個頁面,本文將介紹UniApp中如何設計和開發這兩個頁面,並提供對應的程式碼範例。二、首頁設計開發方法頁面結構UniApp的首頁一般包含標題列、輪播圖、分類

《冒險尋寶然後打敗魔王》是一款西幻背景的RogueLike戰棋遊戲、新遊上線,大家新玩家進入遇到不少問題,其中4個首頁NPC的作用是什麼?接下來就由小編為大家帶來了《冒險尋寶然後打敗魔王》4個首頁NPC作用分享一覽。冒險尋寶然後打敗魔王首頁NPC作用介紹4個首頁NPC的作用:1、冒險團:冒險團升級,賽季冒險團升級,裝備數量上限升級(背包一場冒險結束後記得去清理一下一些廢物裝備,要不然佔格子空間),角色數量上限升級(初始只有8個角色位,金色角色可以超)2、訓練官:訓練角色(紫色和金色可以訓練),升

html子頁回到首頁的方法:1、使用超連結;2、使用JavaScript;3、使用瀏覽器的歷史記錄。詳細介紹:1、使用超鏈接,在子頁中添加一個超鏈接,將其鏈接到首頁的URL,在子頁的底部或導航欄中添加一個"返回首頁"的鏈接,使用”<a>“標籤來建立超鏈接,設定「href」屬性為首頁的URL;2、使用JavaScript,透過JavaScript程式碼來實現傳回首頁的功能等等。

360瀏覽器首頁怎麼設定? 360瀏覽器是一款安全性非常高的網頁瀏覽器軟體,這款瀏覽器擁有豐富的功能和服務,許多用戶喜歡使用這款瀏覽器辦公,360瀏覽器的主頁內容十分豐富,不少用戶很喜歡這個主頁,也有不少用戶比較喜歡更簡約的主頁,那我們要如何設定360瀏覽器的主頁呢。接下來小編就帶給大家360瀏覽器首頁設定方法介紹,大家快來看看。 360瀏覽器首頁設定方法介紹1、首先需要先進入360安全瀏覽器的主介面(如圖所示)。 2.點選右上方的「三條槓」選項,再點選下拉出現的「設定」選項進入到設定介面就可以進

如何設計首頁輪播圖功能的Java開關買菜系統隨著網路的發展,人們的生活方式也不斷改變。越來越多的人開始選擇在線購物,其中包括買菜。為了滿足使用者的需求,許多買菜平台推出了線上訂購買菜的功能。而在這些平台中,首頁輪播圖是一個非常重要的功能之一。本文將介紹如何設計首頁輪播圖功能的Java開關買菜系統。一、功能需求分析在設計首頁輪播圖功能之前,我們需要先分析和明

DZ首頁URL精簡化:去掉index.php,需要具體程式碼範例在使用Discuz!論壇系統時,我們常常需要對URL進行最佳化,其中去掉index.php是一個常見的操作。通過去掉index.php,可以讓URL更簡潔美觀,同時也有利於搜尋引擎優化。以下我們來介紹如何實作DZ首頁URL的精簡化,去掉index.php部分的具體程式碼範例。首先,我們需要登入Di
